利用Struts的静态数据验证方法可以对用户在表单上输入的数据进行验证,包括数据类型是否正确、是否可空等。方法如下:
1、在struts-config.xml文件中加入
<message-resources parameter="ApplicationResources" />
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
</plug-in>
其中parameter="ApplicationResources"意味着在java源代码根部,如src/下有一属性文件ApplicationResources.properties,但为了能显示中文件信息
在src/下还应有文件ApplicationResources_zh_CN.properties, 两文件最后打包到WEB-INF/classes下。
2、利用开发工具在WEB-INF/下导入validator-rules.xml及validation.xml文件。这是有关验证规则及验证内容的配置文件。
3、为表单属性加入中文说明,如有个formBean,名为form1,有三个属性,name、height、born,分别是姓名、身高、出身日期
在ApplicationResources.properties文件中加入属性的解释说明:
errors.integer={0} 必须为整型值,请注意编辑框内不能有空白字符串.
errors.date={0} 日期格式错误,应为 2004-03-23 或 2004-03-23 00:00:00.0 (00:00:00.0 为时:分:秒.毫秒)
# form1
form1.name.displayname=姓名
form1.height.displayname=身高
form1.born.displayname=出身日期
第一、二行不是必须的,但有意义。
打包前执行下列批处理 native2ascii ApplicationResources.properties ApplicationResources_zh_CN.properties,目的是由文件ApplicationResources.properties
产生新文件ApplicationResources_zh_CN.properties,以便能正确显示汉字,这个新文件也在src/下。
4、为了验证用户在填写表单时输入的数据,在validation.xml文件的<formset></formset>之间加入如下内容
<form name="form1">
<field property="name"
depends="required">
<arg0 key="form1.name.displayname"/>
</field>
<field property="height"
depends="integer">
<arg0 key="form1.height.displayname"/>
</field>
<field property="born"
depends="required,date">
<arg0 key="form1.born.displayname"/>
<var>
<var-name>datePatternStrict</var-name>
<var-value>yyyy-MM-dd</var-value>
</var>
</field>
</form>
5、在jsp页面上,在</body>前加入strus标签:
<html:javascript formName="form1" dynamicJavascript="true" staticJavascript="true"/>
经过以上准备,不管是用struts的<html:form></html:form>标签还是用newxy的<nhtml:form></nhtml:form>标签,在客户端用户提交数据前都可以进行验证。
但如果用struts的<html:form></html:form>标签,应加入onsubmit事件,如:
<html:form action="/myAction.do?method=update" onsubmit="return validateForm1(this);">
....
<html:submit value=" 提交 " />
</html:form>
posted on 2007-06-25 16:34
心随我动 阅读(317)
评论(0) 编辑 收藏 所属分类:
框架