使用 Struts Validator(1)
作者: 来源:it167 点击: 日期:2007-01-28 |
|
|
struts-blank 应用程序的值
如果在前面一直遵照我的指示,把 struts-blank.war 文件拷贝到新的文件 —— 用它作为开发 Struts 应用程序的基础 —— 那么就揭开了一个巨大的秘密:struts-blank.war 预先已经做好了使用 Struts Validator 的配置!请看一下示例应用程序的 WEB-INF/lib 文件夹,将看到所有 Validator 需要的库:
◆commons-beanutils.jar: Commons BeanUtils
◆commons-collections.jar: Commons Collections
◆commons-digester.jar: Commons Digester
◆commons-logging.jar: Commons Logging
◆commons-validator.jar: Commons Validator
◆jakarta-oro.jar: Jakarta ORO
如果查看 WEB-INF/classes/MessageResources.properties,会看到定义了全部 Validator error 属性。在 WEB-INF 中,将看到默认版本的 validation-rules.xml,它包含 Validator 的全部默认验证规则,都已经准备好了。有一个非常基本的 validation.xml 版本可供修改(本教程下一节就要介绍它)。而且,最好的是,struts-config.xml 已经设置好了 Validator plugin 元素。
这就是 struts-blank.war 真正美妙之所在,至少以我的观点是这样的:我从不需要记住需要什么 JAR 文件和配置步骤才能让 Validator 工作。我只是把这个文件拷贝到新的位置,把它改成应用程序的名称,然后就开始工作。即使一定要对现有的类或文件做些修改(例如添加链接到欢迎页,或删除某些 JSP),不用担心 Validator 的设置也是值得的。
您可能喜欢在每次开发新的 Struts 应用程序时都执行这一节描述的步骤,但是我宁愿拷贝 struts-blank.war 并改名,然后就开始工作。
在应用程序中使用 Validator
创建测试验证的表单
当我们离开示例应用程序时,有了一个欢迎页面和一个到 pages/test-validation.jsp 的链接。现在可以让这个页面就位了。开始时,它只是一个普通的老式 JSP 页面,有一个基本的表单;一旦让简单的 Struts 应用程序运行起来,我将介绍如何添加验证逻辑。现在,先从清单 8 显示的基本 JSP 开始:
清单 8. 基本的 JSP
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/tags/struts-html" prefix="html" %> <html:xhtml />
<html>
<head>
<title><bean:message key="valid.title" /></title>
</head> <html:form action="/SubmitValid" focus="username">
<table border="0" width="100%">
<tr>
<th align="right">
<bean:message key="prompt.username" />:
</th>
<td align="left">
<html:text property="username" size="10" maxlength="10" />
</td>
</tr>
<tr>
<th align="right">
<bean:message key="prompt.password" />:
</th>
<td align="left">
<html:password property="password" size="16" maxlength="16"
redisplay="false" />
</td>
</tr>
<tr>
<th align="right">
<bean:message key="prompt.phone" />:
</th>
<td align="left">
<html:text property="phone" size="14" maxlength="14" />
</td>
</tr>
<tr>
<th align="right">
<bean:message key="prompt.email" />:
</th>
<td align="left">
<html:text property="email" size="20" maxlength="100" />
</td>
</tr>
<tr>
<th align="right">
<bean:message key="prompt.url" />:
</th>
<td align="left">
<html:text property="url" size="20" maxlength="100" />
</td>
</tr>
<tr>
<td align="right">
<html:reset />
</td>
<td align="left">
<html:submit property="Submit" value="Submit" />
</td>
</table>
</html:form>
</body>
</html>
|
要添加到列表中的内容很少。可以看到,它创建了一个表单,然后提供了输入错误数据的丰富机会。请注意对名称属性的丰富应用;现在应当把这些添加到 WEB-INF/classes/MessageResources.properties 文件中。把它们放在文件底部现有条目的后面:
# -- validation test page --
valid.title=Simple Validation Test Form
prompt.username=Username
prompt.password=Password
prompt.phone=Phone Number
prompt.email=E-Mail Address
prompt.url=URL (Website Address)
|
注意: 在本教程的这样简单的一个 JSP 中使用属性看起来有点过分。但是,这只是一个良好的编码实践。可以本地化这些属性,方便地修改它们和重用它们,而几乎不需要额外的开发时间。请习惯于利用这类最佳实践的优势,即使在示例应用程序和原型设计中也该如此。它将带来长期回报。
|