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,内容如下
然后在User类所在包建立名为User-add-validation.xml(add为上面<param name="context">add</param>中定议),内容如下
经过以上设置,即可对action中的user进行验证了!
另:可以定义User-validation.xml来验证公共属性,定义了Visitor校验器后,会自动检查User-validation.xml中的公共规则,如Visitor诉求验器中只写message属性,则只进行公共属性验证。
假设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>
"-//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>
"-//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属性,则只进行公共属性验证。