Struts2两大验证
1.手动验证:
1)使用execute方法处理请求
a) 使该类继承ActionSupport
b) 删除提示消息的封装(被struts2框架替代)
c) 重写validate方法,并且完成相应的校验
说明:如果validate方法中,给field字段添加了错误消息,哪怕是空字符串的错误消息,都会让validate方法后续的方法终止调用。对应的代码为:
this.addFieldError("对应属性", "错误消息内容");
的)修改index.jsp
2)不使用execute方法处理用户请求
二、Struts2验证框架验证
上述代码并不是struts框架推荐的校验方法,Struts推荐采用配置文件的方式进行数据校验。
a. 继承ActionSupport类
b. 修改struts2.xml文件:删除method属性
c. 在需要验证的Action类的相同包下,写一个”类名-validation.xml”文件
d. 加入头信息以具有提示功能
<!DOCTYPE validators PUBLIC"-//Apache Struts//XWork Validator1.0.3//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
1.验证字符串是否为空
<field name="name">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>用户名必填</message>
</field>
2.验证字符串长度(去掉两端空格)
<field name="name">
<field-validatortype="stringlength">
<param name="trim">true</param>
<param name="maxLength">10</param>
<param name="minLength">4</param>
<message>去掉两端空格后,字符串长度应为4-10</message>
</field-validator>
</field>
3.数字范围验证
<field name="age">
<field-validator type="int">
<param name="min">6</param>
<param name="max">10</param>
<message>age必须在 ${min} 和${max}之间</message>
</field-validator>
</field>
4.表达式验证:不需要依托于<field>节点
<validator type="expression">
<param name="expression"><![CDATA[name.equals(pwd)]]></param>
<param name="expression"><![CDATA[age == 100]]></param>
<message></message>
</validator>
补充:表达式验证
<field name="pass">
<field-validator type="fieldexpression">
<!--指定逻辑表达式-->
<param name="expression"><![CDATA[age == 100]]></param>
<message>年龄必须大于100</message>
</field-validator>
</field>
5.非空(null)验证
<field name="birth">
<field-validator type="required">
<message>必须输入一个生日</message>
</field-validator>
</field>
6.利用正则表达式验证<field-validator type="regex">