惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
月光博客
月光博客
MyScale Blog
MyScale Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
爱范儿
爱范儿
P
Proofpoint News Feed
人人都是产品经理
人人都是产品经理
Last Week in AI
Last Week in AI
罗磊的独立博客
G
Google Developers Blog
Y
Y Combinator Blog
博客园 - 【当耐特】
WordPress大学
WordPress大学
大猫的无限游戏
大猫的无限游戏
博客园 - 叶小钗
J
Java Code Geeks
酷 壳 – CoolShell
酷 壳 – CoolShell
V
Visual Studio Blog
美团技术团队
宝玉的分享
宝玉的分享
Jina AI
Jina AI
小众软件
小众软件
T
Tailwind CSS Blog
A
About on SuperTechFans

博客园 - netshuai

免安装Oracle客户端使用PL/SQL连接Oracle的2种方法 优化MyEclipse7.5 WebService大讲堂之Axis2(9):编写Axis2模块(Module) WebService大讲堂之Axis2(10):使用soapmonitor模块监视soap请求与响应消息 WebService大讲堂之Axis2(7):将Spring的装配JavaBean发布成WebService WebService大讲堂之Axis2(8):异步调用WebService WebService大讲堂之Axis2(5):会话(Session)管理 WebService大讲堂之Axis2(6):跨服务会话(Session)管理 WebService大讲堂之Axis2(4):二进制文件传输 WebService大讲堂之Axis2(3):使用services.xml文件发布WebService WebService大讲堂之Axis2(2):复合类型数据的传递 (转)WebService大讲堂之Axis2(1):用POJO实现0配置的WebService J2EE项目代码编写规范 Dom4j入门 编码 GBK 的不可映射字符 ognl表达式用法笔记 - netshuai - 博客园 struts2中减少action数量(通配符使用) struts2.1.6 datetimepicker标签不能使用的问题解决 加快MyEclipse启动速度
struts2校验框架之Visitor校验器
netshuai · 2009-08-05 · via 博客园 - netshuai

Visitor校验器主要用于检测Action里的复合属性,如一个Action里面包含了User类型的属性。
假设User类包含了username和password属性,为了验证Action里User类的username和password属性输入值是否有效,就可以使用Visitor校验器。
通常情况下可以使用[action名]+[-方法名(是struts.xml配置中的别名)]+validation.xml来校验;如此例需要验证User类,则需要添加一个User-[上下文名]-validation.xml来配置,且User-[上下文名]-validation.xml文件必须与User类在同一个包中。

若Action名为AddUserAction,则校验文件名为AddUserAction-validation.xml,内容如下

<!DOCTYPE validators PUBLIC
        "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
        "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"
><validators>
         
<!-- 校验的Action中的user类 -->
    
<field name="user">
        
<field-validator type="visitor">
                       
<!-- 指定校验规则文件的context名为add,此名可任意取 -->
            
<param name="context">add</param>
        
<!-- 指定校验失败后提示信息是否添加下面前缀,如果设置为false,则在标签对应的地方不显示错误,需要用fielderrors来显示 -->
            
<param name="appendPrefix">true</param>
                         
<!-- 指定校验失败的提示信息前缀 -->
            
<message>错误:</message>
        
</field-validator>
    
</field></validators>

然后在User类所在包建立名为User-add-validation.xml(add为上面<param name="context">add</param>中定议),内容如下

<!DOCTYPE validators PUBLIC
        "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
        "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"
><validators><field name="username">
        
<field-validator type="requiredstring">
            
<message>用户名不能为空</message>
        
</field-validator>
    
</field>
    
<field name="password">
        
<field-validator type="requiredstring">
            
<message>密码不能为空</message>
        
</field-validator>
    
</field></validators>

经过以上设置,即可对action中的user进行验证了!
另:可以定义User-validation.xml来验证公共属性,定义了Visitor校验器后,会自动检查User-validation.xml中的公共规则,如Visitor诉求验器中只写message属性,则只进行公共属性验证。