struts课程2 用户注册的表单验证 不使用FormBean的Validate方法
1.导入struts
2.创建一个Form Action,继承ValidatorForm,添加Properties:username password age email
3.创建一个Validate的xml配置文件:form.xml
<!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN" "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd"> <!-- 上面是DTD --> <!-- 所有定义的表单验证写在下面的标签内 --> <form-validation> <!-- 一组form --> <formset> <!-- form的name对应struts-config.xml中配置的formbean的名字 --> <form name="regiterForm"> <!-- 每个表单属性的标签 ,depends使用一些定义好的规则来约束本属性,required意为必填--> <field property="username" depends="required"> <!-- 在这个标签内部制定验证规则 --> <!-- 参数, key指代当前属性的名字,这个名字应该在配置文件中有一个对应--> <arg0 key="usernamelabel"/> </field> <field property="password" depends="required"> <arg0 key="passwordlabel"/> </field> <field property="age" depends="required,integer,intRange"> <arg0 key="agelabel"/> <!-- 使用一些struts自带的验证规则,intRange验证整数范围 resourse = false 说明key的取值不从资源文件中获取,而直接 从本文件获取(在下面设置) key 中要使用 固定的 标记${var:var_name} --> <arg1 name="intRange" key="${var:min}" resource="false"/> <arg2 name="intRange" key="${var:max}" resource="false"/> <var> <var-name>min</var-name> <var-value>16</var-value> </var> <var> <var-name>max</var-name> <var-value>90</var-value> </var> <!-- 以上设置使年龄为16-90 --> </field> <field property="email" depends="required,email"> <arg0 key="emaillabel"/> </field> <!-- 设置完成后,需要到配置文件中配置 所有用到的参数 --> </form> </formset> </form-validation> <!-- 常用验证,depends="" required 必选项,为空则为非法 mask 使用正则表达式验证 <field property="telphone" depends="required,mask"> <arg0 key="telphonelabel"/> <var > <var-name>mask</var-name> <var-value>^\d{3}(-\d{8})?$</var-value> 此处正则 </var> </field> minLength,maxLength 验证最大长度 email 使用内置的方法验证电子邮件地址,该规则定义在validator-rules.xml文件中 -->
4.配置资源文件
usernamelabel=UserName
agelabel=Age
emaillabel=Email
passwordlabel=PassWord
errors.required={0} Is Required\!\!
errors.integer={0} must be an integer
errors.email={0} Is Not A Invalid Email Address
errors.range={0} is not in the range {1} through {2}
5.配置struts-config.xml
<plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/form.xml"/> </plug-in>
6.修改FormBean
去掉Validate方法,有的话,直接就跳到Action执行execute方法了
7.测试