struts Validatour验证

Struts2Validator

Action配置中一定要设置input返回页面

添加验证只要创建验证的xml文件
1.创建xml文件名
验证Action中全部方法

在Action同包下,创建:Action类名-validation.xml
如:ValidateAction创建ValidateAction-validation.xml
验证Action中单个方法

<!-- 每个方法单独配置一个Action -->
<!-- 在Action同包下,创建:Action类名-action方法配置名称-validation.xml -->
<action name="validateAdd" class="com.struts2.validator.ValidateAction" method="add">
<!-- 要创建ValidateAction-validateAdd-validation.xml -->

<!-- 使用通配符配置 -->
<!-- 在Action同包下,创建:Action类名-action方法对应的名称-validation.xml -->
<action name="validate_*" class="com.struts2.validator.ValidateAction" method="{1}">
<!-- 要创建ValidateAction-validate_add-validation.xml,validate_add为访问这个action方法的路径 -->

注意事项

注意:
1.要验证的方法不能叫input.
2.这样配置在form表单中要在<s:form action="validate_add">中action写好名称,
不能写action="validate_",然后<s:submit value="提交"method="add" />
这样会找不到对应的配置文件,跳过验证.
3.如果验证出错,返回input页面时,那些存在ValueStack中的值会丢失,可以将Action实现Preparable接口,
然后prepare()方法里初始化添加页面需要的值.
4.如果使用Preparable接口,必须在action配置中添加<interceptor-ref name="paramsPrepareParamsStack" />.
这样prepare()才能得到form提交的参数.


2.创建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中UserBean的id字段,name="userBean.id"(userBean为Action中的变量名) -->
<field name="mail">
<!-- type要验证的类型,short-circuit(默认false),true含义,如果当前验证失败了,下面的验证就不执行了.如requiredstring失败了,email就不验证了. -->
<!-- field-validator下面可以有多个param元素,但是最多只能有一个message -->
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>Please enter a mail</message>
</field-validator>
<field-validator type="email">
<message>
Invalid MAIL
</message>
</field-validator>
</field>
</validators>

Struts内建验证程序(type的值)
required

保证字段的值不是空值null.空字符串不是空值null.

<field name="userName">
<field-validator type="required">
<message>Please enter a user name</message>
</field-validator>
</field>

requiredstring

保证字段不是空值null,也不是空白(empty).
param:trim(boolean) ->true->去除前后空格

<field name="userName">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>Pl

 

你可能感兴趣的:(struts Validatour验证)