使用Struts2的输入校验(一)--校验规则文件
来源:互联网 发布:大话数据库 pdf 下载 编辑:程序博客网 时间:2024/05/17 23:43
编写校验规则文件
(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>
0 0
- 使用Struts2的输入校验(一)--校验规则文件
- Struts2的输入校验(1):编写校验规则文件(方法一)
- Struts2输入校验(一)配置文件校验
- Struts2框架的输入校验(一)
- Struts2的输入校验(一)
- 使用Struts2的输入校验(三)--短路校验器
- Struts2输入校验(一)
- Struts2输入校验(一)
- Struts2输入校验(一)
- 使用struts2的输入校验
- Struts2 输入校验(Action中使用国际化资源文件、校验器校验)
- Struts2输入校验(一)
- 详解Struts2的输入校验一
- Struts2的 输入校验
- Struts2的输入校验
- struts2的输入校验
- Struts2的 输入校验 .
- Struts2的输入校验
- 洛谷 P1984 [SDOI2008]烧水问题
- PAT编程基础 5-18 二分法求多项式单根 (20分)
- Elasticsearch增删改查
- 扫盲 HTTPS 和 SSL/TLS 协议[2]:可靠密钥交换的难点,以及身份认证的必要性
- APP 启动白屏 解决 4.4 onstart 不运行 的问题
- 使用Struts2的输入校验(一)--校验规则文件
- PC端和手机端调转
- UART协议
- 分区表单文件组实践
- iOS 崩溃调试EXC_BAD_ACCESS/EXC_BREAKPOINT
- 数据算法之希尔排序(shellSort)的Java实现
- 深入浅出设计模式之适配器模式
- "Unfortunately, Launcher has stopped" on Android
- STM32 EXTI中断线配置问题