第一步:
让你写的Action类继承ActionSupport
public class ActionParam extendsActionSupport
第二步:
在这个Action下面创建一个xml文件:文件名:ActionClassName-validation.xml ;(在这里ActionName就是指ActionParam,后面valiedation.xml 固定写法)
第三步:
在这个xml文件中,我们校验数据,例如我们需要对用户名和手机号进行校验:
<?xml version="1.0"encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC"-//Apache Struts//XWork Validator 1.0.3//EN" "
http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<validators>
<field name="username"> //这里是指需要被校验的属性名
<field-validatortype="requiredstring"> //这里指具体校验用到的方法,这是系统提供的
<paramname="trim">true</param> //这里除去空格
<message>用户名不能为空!</message>//如果校验失败,返回校验失败的原因
</field-validator>
</field>
<field name="mobile">
<field-validatortype="requiredstring">
<paramname="trim">true</param>
<message>手机号不能为空!</message>
</field-validator>
<field-validatortype="regex">
<paramname="expression"><![CDATA[^1[358]\d{9}$]]></param> //正则表达式写法,加![CDATA[]]是为了防止和xml文件中的一些关键词冲突
<message>手机格式不正确</message>
</field-validator>
</field>
</validators>
第四步:
如果校验失败,系统会自动将失败的原因返回到input视图中,所有我们要配置好input视图,用来将错误信息提供给用户
如果校验成功,则转到提示页面。
<actionname="a1_*" class="cn.itcast.action.ActionParam"method="{1}">
<resultname="input">/index.jsp</result>
<resultname="success">/WEB-INF/page/Message.jsp</result>
</action>
第五步:
在input视图中指定的jsp文件,我们添加标签,用来返回错误信息给用户
<%@ tagliburi="/struts-tags" prefix="s"%>
<s:fielderror/>
结束!
实际开发中,如果我们只需要对action中的某一个方法进行校验,那么我们该怎么做呢?
很简单,我们只要改一下配置文件的名字即可:例如在本例中,我们需要对ActionParam中的excute方法进行校验
那么,我们只要改一下配置文件的名字即可,即:ActionClassName-actionname-validation.xml,
在本例中就是ActionParam-a1_excute-validation.xml
a1_excute哪里来的呢?我们可以看上面的
<actionname="a1_*" class="cn.itcast.action.ActionParam"method="{1}">
<result name="input">/index.jsp</result>
<result name="success">/WEB-INF/page/Message.jsp</result>
</action>
我们就可以发现了actionname就是a1_*,所以actioname就是a1_excute.(如果看不懂,可以看一下我的博文,通配符 * 的作用 )
搞定!
------------------------------------------------------------------------------------------------苦难不是博得同情那个的资本,只有不断的奋斗才能改变命运!