action:
package lee;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ActionContext;
import java.util.*;
import java.util.regex.*;
import java.text.*;
public class RegistAction extends ActionSupport
{
private String name;
private String pass;
private int age;
private Date birth;
// get/set方法
}
验证文件:
<?xml version="1.0" encoding="GBK"?>
<!-- 指定校验配置文件的DTD信息 -->
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<!-- 校验文件的根元素 -->
<validators>
<!-- 校验Action的name属性 -->
<field name="name">
<!-- 指定name属性必须满足必填规则 -->
<field-validator type="requiredstring" short-circuit="true">
<param name="trim">true</param>
<!-- 如果校验失败,输出name.requried对应的国际化信息 -->
<message>${getText("name.requried")}</message>
</field-validator>
<!-- 指定name属性必须匹配正则表达式 -->
<field-validator type="regex">
<param name="expression"><![CDATA[(\w{4,25})]]></param>
<!-- 如果校验失败,输出name.regex对应的国际化信息 -->
<message>${getText("name.regex")}</message>
</field-validator>
</field>
<!-- 校验Action的pass属性 -->
<field name="pass">
<!-- 指定pass属性必须满足必填规则 -->
<field-validator type="requiredstring" short-circuit="true">
<param name="trim">true</param>
<!-- 如果校验失败,输出pass.requried对应的国际化信息 -->
<message>${getText("pass.requried")}</message>
</field-validator>
<!-- 指定pass属性必须满足匹配指定的正则表达式 -->
<field-validator type="regex">
<param name="expression"><![CDATA[(\w{4,25})]]></param>
<!-- 如果校验失败,输出pass.regex对应的国际化信息 -->
<message>${getText("pass.regex")}</message>
</field-validator>
</field>
<!-- 指定age属性必须在指定范围内-->
<field name="age">
<field-validator type="int">
<param name="min">1</param>
<param name="max">150</param>
<!-- 如果校验失败,输出age.range对应的国际化信息 -->
<message>${getText("age.range")}</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>
<!-- 如果校验失败,输出birth.range对应的国际化信息 -->
<message>${getText("birth.range")}</message>
</field-validator>
</field>
</validators>
国际化资源文件:
globalMessages_zh_CN.properties
xwork.default.invalid.fieldvalue={0}\u5B57\u6BB5\u65E0\u6548
name.requried=\u60A8\u5FC5\u987B\u8F93\u5165\u7528\u6237\u540D\!
name.regex=\u60A8\u8F93\u5165\u7684\u7528\u6237\u540D\u53EA\u80FD\u662F\u5B57\u6BCD\u548C\u6570\u7EC4\uFF0C\u4E14\u957F\u5EA6\u5FC5\u987B\u57284\u523025\u4E4B\u95F4\!
pass.requried=\u60A8\u5FC5\u987B\u8F93\u5165\u5BC6\u7801\!
pass.regex=\u60A8\u8F93\u5165\u7684\u5BC6\u7801\u53EA\u80FD\u662F\u5B57\u6BCD\u548C\u6570\u7EC4\uFF0C\u4E14\u957F\u5EA6\u5FC5\u987B\u57284\u523025\u4E4B\u95F4\!
age.range=\u60A8\u7684\u5E74\u9F84\u5FC5\u987B\u5728${min}\u548C${max}\u4E4B\u95F4\!
birth.range=\u60A8\u7684\u751F\u65E5\u5FC5\u987B\u57281900-01-01\u548C2050-02-21\u4E4B\u95F4\!
globalMessages.properties
xwork.default.invalid.fieldvalue={0}\u00D7\u00D6\u00B6\u00CE\u00CE\u00DE\u00D0\u00A7
name.requried=\u00C4\u00FA\u00B1\u00D8\u00D0\u00EB\u00CA\u00E4\u00C8\u00EB\u00D3\u00C3\u00BB\u00A7\u00C3\u00FB\!
name.regex=\u00C4\u00FA\u00CA\u00E4\u00C8\u00EB\u00B5\u00C4\u00D3\u00C3\u00BB\u00A7\u00C3\u00FB\u00D6\u00BB\u00C4\u00DC\u00CA\u00C7\u00D7\u00D6\u00C4\u00B8\u00BA\u00CD\u00CA\u00FD\u00D7\u00E9\u00A3\u00AC\u00C7\u00D2\u00B3\u00A4\u00B6\u00C8\u00B1\u00D8\u00D0\u00EB\u00D4\u00DA4\u00B5\u00BD25\u00D6\u00AE\u00BC\u00E4\!
pass.requried=\u00C4\u00FA\u00B1\u00D8\u00D0\u00EB\u00CA\u00E4\u00C8\u00EB\u00C3\u00DC\u00C2\u00EB\!
pass.regex=\u00C4\u00FA\u00CA\u00E4\u00C8\u00EB\u00B5\u00C4\u00C3\u00DC\u00C2\u00EB\u00D6\u00BB\u00C4\u00DC\u00CA\u00C7\u00D7\u00D6\u00C4\u00B8\u00BA\u00CD\u00CA\u00FD\u00D7\u00E9\u00A3\u00AC\u00C7\u00D2\u00B3\u00A4\u00B6\u00C8\u00B1\u00D8\u00D0\u00EB\u00D4\u00DA4\u00B5\u00BD25\u00D6\u00AE\u00BC\u00E4\!
age.range=\u00C4\u00FA\u00B5\u00C4\u00C4\u00EA\u00C1\u00E4\u00B1\u00D8\u00D0\u00EB\u00D4\u00DA${min}\u00BA\u00CD${max}\u00D6\u00AE\u00BC\u00E4\!
birth.range=\u00C4\u00FA\u00B5\u00C4\u00C9\u00FA\u00C8\u00D5\u00B1\u00D8\u00D0\u00EB\u00D4\u00DA1900-01-01\u00BA\u00CD2050-02-21\u00D6\u00AE\u00BC\u00E4\!
struts.xml
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.custom.i18n.resources" value="globalMessages"/>
<constant name="struts.i18n.encoding" value="GBK"/>
<package name="lee" extends="struts-default">
<action name="regist" class="lee.RegistAction">
<result name="input">/regist.jsp</result>
<result>/show.jsp</result>
</action>
<action name="">
<result>.</result>
</action>
</package>
</struts>
web.xml
<?xml version="1.0" encoding="GBK"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<!-- 定义Struts2的核心Filter -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<!-- 让Struts2的核心Filter拦截所有请求 -->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
regist.jsp
<body>
<H1>请输入您的注册信息</H1>
<!-- 使用Struts2标签库生成表单 -->
<s:form action="regist" validate="true">
<!-- 使用s:textfield标签生成文本输入框 -->
<s:textfield label="用户名" name="name"/>
<s:password label="密码" name="pass"/>
<s:textfield label="年龄" name="age"/>
<s:textfield label="生日" name="birth"/>
<s:submit/>
</s:form>
</body>
show.jsp
<body>
<H3>校验成功</H3>
用户名:<s:property value="name"/><br>
密码:<s:property value="pass"/><br>
年龄:<s:property value="age"/><br>
生日:<s:property value="birth"/><br>
</body>
- 大小: 15.4 KB
分享到:
相关推荐
Struts1.3 与1.2向比验证框架部分还是有所区别的,该例子通过一个简单的Email的校验,演示如何通过Struts Validate验证框架进行在页面中生成JavaScripte脚本,进行客户端校验。下完后记得评分,资源分就会回来,还能...
3、同时使用了了hibernate提供的校验框架,对客户端数据进行校验! 4、Mybati数据库DAO层采用的是Mapper代理开发方法,输入映射采用的是POJO包装类型实现,输出映射采用了resultMap类型,实现了数据库多对一映射。 5...
3、同时使用了了hibernate提供的校验框架,对客户端数据进行校验! 4、Mybati数据库DAO层采用的是Mapper代理开发方法,输入映射采用的是POJO包装类型实现,输出映射采用了resultMap类型,实现了数据库多对一映射。 5...
5.2. 使用Spring的Validator接口进行校验 5.3. 从错误代码到错误信息 5.4. Bean处理和BeanWrapper 5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建的PropertyEditor实现 6. 使用Spring进行面向切面编程(AOP...
5.2. 使用Spring的Validator接口进行校验 5.3. 从错误代码到错误信息 5.4. Bean处理和BeanWrapper 5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建的PropertyEditor实现 5.4.2.1. 注册用户自定义的PropertyEditor ...
5.2. 使用Spring的Validator接口进行校验 5.3. 从错误代码到错误信息 5.4. Bean处理和BeanWrapper 5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建的PropertyEditor实现 6. 使用Spring进行面向切面编程(AOP...
5.2. 使用Spring的Validator接口进行校验 5.3. 从错误代码到错误信息 5.4. Bean处理和BeanWrapper 5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建的PropertyEditor实现 6. 使用Spring进行面向切面编程(AOP...
5.2. 使用Spring的Validator接口进行校验 5.3. 从错误代码到错误信息 5.4. Bean处理和BeanWrapper 5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建的PropertyEditor实现 6. 使用Spring进行面向切面编程(AOP...