当前位置: 首页 > 图文教程 > Java技术 > Web框架 > Struts2的Visitor校验器

Web框架
Web框架:Struts标记库定制JSP标记
Web框架:简述Ajax技术的那些框架
Web框架:利用列表数据提高开发效率
Web框架:Struts2中声明式异常处理
Web框架:小议Spring的异常处理那点事
Web框架:详谈AOP概念
Web框架:小编浅谈Struts2的Ajax支持
Web框架:Ajax提供的div标签
Web框架:程序员之家七月份Web框架总结
Web框架:浅谈Spring Bean封装机制
Web框架:小编浅谈Struts配置文件
Web框架:小编谈Spring中的AOP 应用
Web框架:Spring的闪亮之处:事务管理
Web框架:浅谈iBATIS的动态映射
Web框架:Hibernate中五个接口那些事
Web框架:Hibernate的ORM与Hibernate的优点
Web框架:Struts2的OGNL
Web框架:Struts中的ActionForm 作为防火墙
Web框架:小编浅谈Struts2中使用JSON插件实现Ajax
Web框架:Aegis绑定那些事

Web框架 中的 Struts2的Visitor校验器


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-12-26   浏览: 253 ::
收藏到网摘: n/a

相信大家对Visitor校验器并不陌生,其实Visitor校验器,用于检测Action里的复合属性。例如:RegistAction中包含了一个User属性,那么要校验User里的属性就要使用Visitor校验器,RegistAction-validation.xml文件中的配置如下:

 

<?xml version="1.0" encoding="GBK"?>

 

<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"

"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">

 

<validators>

 

<!-- 指定校验user属性 -->

<field name="user">

   <!-- 使用visitor校验器 -->

   <field-validator type="visitor">

    <!-- 指定校验规则文件的context -->

    <param name="context">userContext</param>

    <!-- 指定校验失败后的提示信息是否添加下面的前缀 -->

    <param name="appendPrefix">true</param>

    <!-- 指定校验失败的提示信息的前缀 -->

    <message>用户的:</message>

   </field-validator>

</field>

</validators>

 

还要另外再为User属性配置单独的校验文件,默认的文件名应为User-validation.xml,因为刚在在RegistAction-validation.xml文件中指定了visitorcontext属性为userContext,因此校验文件名应为:User-userContext-validation.xml,该文件同一般的校验文件一样,代码如下:

 

 

<?xml version="1.0" encoding="GBK"?>

 

 

<!DOCTYPE validators PUBLIC

 

   "-//OpenSymphony Group//XWork Validator 1.0//EN"

   "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">

 

<validators>

<field name="name">

   <field-validator type="requiredstring">

    <param name="trim">true</param>

    <message>必须输入名字</message>

   </field-validator>

   <field-validator type="regex">

    <param name="expression"><![CDATA[(\w{4,25})]]></param>

    <message>您输入的用户名只能是字母和数组,且长度必须在425之间</message>

   </field-validator>

</field>

<field name="pass">

   <field-validator type="requiredstring">

    <param name="trim">true</param>

    <message>必须输入密码</message>

   </field-validator>

   <field-validator type="regex">

    <param name="expression"><![CDATA[(\w{4,25})]]></param>

    <message>您输入的密码只能是字母和数组,且长度必须在425之间</message>

   </field-validator>

</field>

<field name="age">

   <field-validator type="int">

    <param name="min">1</param>

    <param name="max">150</param>

    <message>年纪必须在1150之间</message>

   </field-validator>

    </field>

<field name="birth">

   <field-validator type="date">

    <param name="min">1900-01-01</param>

    <param name="max">2050-02-21</param>

    <message>年纪必须在${min}${max}之间</message>

   </field-validator>

</field>

</validators>

 

当然这时候的JSP页面中也与之前的不一样,它要把页面属性直接赋值给Action中的User中的属性,这在之前的几课中已经有过说明,页面代码如下:

 

 

<%@ page language="java" contentType="text/html; charset=GBK"%>

 

<%@taglib prefix="s" uri="/struts-tags"%>

 

<html>

 

 

<head>

 

 

<title>请输入您的注册信息</title>

 

 

</head>

 

 

 

 

<body>

 

<H1>请输入您的注册信息</H1>

<s:fielderror/>

<FORM METHOD="POST" ACTION="regist.action">

用户名:<INPUT TYPE="text" NAME="user.name"><br>

&nbsp;&nbsp;码:<INPUT TYPE="text" NAME="user.pass"><br>

&nbsp;&nbsp;龄:<INPUT TYPE="text" NAME="user.age"><br>

&nbsp;&nbsp;日:<INPUT TYPE="text" NAME="user.birth"><p>

<INPUT TYPE="submit" value="注册">

</FORM>

</body>

 

</html>