public class TestModelAction extends ActionSupport implements ModelDriven<User> { PRivate User user = new User(); @Override public User getModel() { // TODO Auto-generated method stub return user; } public String execute() throws Exception { System.out.println(user.getUsername() + "," + user.getPassWord()); return "success"; } public void validate() { System.out.println("validate......."); } public void validateExecute() { System.out.println("validateExecute"); }}执行的顺序:getModel——validateExecute——validate——execute。配置文件校验
为了减轻Action的负担,Struts2框架提供了一种更方便更有效更常用的方式:xml检验。一定在Struts配置文件中添加逻辑结果为input的标签和页面。
*命名有要求:Action类名-validation.xml是校验所有方法,Action类名-请求路径-validation.xml是校验某一个方法的。
*存放位置有要求:必须存放在Action同一个包下。
举个例子:UserAction-user_register.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-validator type="requiredstring"> <param name="trim">true</param> <message>用户名不能为空!</message> </field-validator> <field-validator type="stringlength"> <param name="minLength">6</param> <param name="maxLength">12</param> <message>用户长度必须介于${minLength}-${maxLength}之间</message> </field-validator> </field> <!-- 校验密码 --> <field name="password"> <field-validator type="requiredstring"> <param name="trim">true</param> <message>密码不能为空!</message> </field-validator> <field-validator type="regex"> <param name="expression"><![CDATA[^[A-Za-z0-9]+$]]></param> <message>密码格式不正确,必须是字母和数字的组合</message> </field-validator> </field> <!-- 校验姓名 --> <field name="name"> <field-validator type="requiredstring"> <param name="trim">true</param> <message>姓名不能为空!</message> </field-validator> </field> <!-- 校验地址 --> <field name="addr"> <field-validator type="requiredstring"> <param name="trim">true</param> <message>地址不能为空!</message> </field-validator> </field> <!-- 校验电话 --> <field name="addr"> <field-validator type="requiredstring"> <param name="trim">true</param> <message>手机号不能为空</message> </field-validator> <field-validator type="regex"> <!-- 或者:<![CDATA[^1[358]/d{9}$]]> --> <param name="regex">^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,5-9]))//d{8}$</param> <message>手机号码格式错误</message> </field-validator> </field> <!-- 校验邮箱 --> <field name="email"> <field-validator type="email"> <message>邮箱格式不正确!</message> </field-validator> </field> </validators>这些校验器应该是最常用的了。最后
校验方法最常用的还是xml校验,如果可以的话这些校验的方式最好收集起来,因为基本上是记不住的。这是我的一些理解,请多多见谅。
新闻热点
疑难解答