使用Struts2的输入校验(一)--校验规则文件
2017-01-17 20:41
465 查看
编写校验规则文件
(1)注册页面:4个表单域:name,pass,age,birth;
4个规则:
①name和pass只能是字母和数组,且长度必须在4到25之间。
②年龄必须是1到150之间的整数。
③生日必须在1900-01-01和2050-02-21之间。
程序清单:Struts2_4_2_1\WebRoot\regist.jsp
<s:form action="regist"> <s:textfield name="name" label="用户名"/> <s:textfield name="pass" label="密码"/> <s:textfield name="age" label="年龄"/> <s:textfield name="birth" label="生日"/> <s:submit value="注册"/> </s:form>
(2)注册请求对应的Action:execute()方法直接返回success字符串
程序清单:Struts2_4_2_1\csdn\slow\app\action\RegistAction.java
public class RegistAction extends ActionSupport { //该请求包含的4个请求参数 private String name; private String pass; private int age; private Date birth; //省略getter和setter ... }
(3)编写RegistAction输入校验文件RegistAction-validation.xml
参考:struts2的校验文件DTD配置出错的解决方法
Struts2中指定的校验文件不起作用的原因
<?xml version="1.0" encoding="UTF-8"?> <!-- 指定校验配置文件的DTD信息 --> <!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"> <!-- 校验文件的根元素 --> <validators> <!-- 校验Action的name属性 --> <field name="name"> <!-- 指定name属性必须满足必填规则 --> <field-validator type="requiredstring"> <param name="trim">true</param> <message>必须输入名字</message> </field-validator> <!-- 指定name属性必须匹配正则表达式 --> <field-validator type="regex"> <param name="expression"><![CDATA[(\w{4,25})]]></param> <message>您输入的用户名只能是字母和数字,且长度必须在4到25之间</message> </field-validator> </field> <!-- 校验Action的pass属性 --> <field name="pass"> <!-- 指定pass属性必须满足必填规则 --> <field-validator type="requiredstring"> <param name="trim">true</param> <message>必须输入密码</message> </field-validator> <!-- 指定pass属性必须满足匹配指定的正则表达式 --> <field-validator type="regex"> <param name="expression"><![CDATA[(\w{4,25})]]></param> <message>您输入的密码只能是字母和数字,且长度必须在4到25之间</message> </field-validator> </field> <!-- 指定age属性必须在指定范围内 --> <field name="age"> <field-validator type="int"> <param name="min">1</param> <param name="max">150</param> <message>年纪必须在1到150之间</message> </field-validator> </field> <!-- 指定birth属性必须在指定范围内 --> <field name="birth"> <field-validator type="date"> <!-- 下面指定日期字符串时,必须使用本locale的日期格式 --> <param name="min">1900-01-01</param> <param name="max">2050-02-21</param> <message>生日必须在${min}到${max}之间</message> </field-validator> </field> </validators>
(4)修改struts.xml如下:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <!-- 设置允许OGNL允许访问静态成员 --> <constant name="struts.ognl.allowStaticMethodAccess" value="true"/> <!-- 设置支持动态方法调用,默认是false --> <constant name="struts.enable.DynamicMethodInvocation" value="true"/> <!-- 开发模式 --> <constant name="conststruts.devMode" value="true"/> <!-- 下面配置名为slow的包,该包继承了Struts2的默认包,使用默认指定空间 --> <package name="slow" extends="struts-default"> <action name="regist" class="csdn.slow.app.action.RegistAction"> <!-- 类型转换失败、输入校验失败,转入该页面 --> <result name="input">/regist.jsp</result> <result>/show.jsp</result> </action> </package> </struts>
(5)显示错误提示
参考:struts2标签之< s:fielderror>
相关文章推荐
- Struts2的输入校验(1):编写校验规则文件(方法一)
- 4.2.7: Struts2的输入校验---校验文件的搜索规则
- Struts2 输入校验(Action中使用国际化资源文件、校验器校验)
- JAVAWEB开发之Struts2详解(二)——Action接受请求参数、类型转换器、使用Struts2的输入校验、以及遵守约定规则实现Struts2的零配置
- 4.2.1: Struts2的输入校验---编写校验规则文件
- day28_struts2(全天)のPPT学习——06 使用Struts2的输入校验
- 使用Struts2验证框架实现输入校验
- Struts2中的输入校验使用正则因正则中含有空格导致报错
- 4.2.3: Struts2的输入校验---使用客户端校验
- Struts2输入校验(二)非配置文件校验
- 使用struts2的输入校验
- 使用Struts2的输入校验(三)--短路校验器
- Struts2的类型转换及输入校验(集合类型的使用)
- Struts2中使用校验文件对表单的校验以及常用的校验
- struts2使用XML框架进行输入校验
- struts2的输入校验框架及DTD文件配置
- JavaEE----使用Struts2的输入校验之手动编码校验
- Struts2的类型转换及输入校验(数组类型的使用)
- struts2使用validate方法来实现对表单输入数据的校验操作
- 使用Struts2的输入校验(二)--regex validator没有效果?