struts2校验框架之Visitor校验器

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属性,则只进行公共属性验证。

你可能感兴趣的:(struts2)