struts2简单入门-数据校验
- 数据校验流程
-
校验数据的方式
- 重写execute方法在内部写校验代码
-
1 public class LoginAdminAction extends ActionSupport 2 { 3 private User user; 4 @Override 5 public String execute() throws Exception 6 { 7 //测试校验代码 8 if("".equals(user.getUsername())) 9 { 10 addFieldError("msg", "用户名不能为空.");11 } 12 if("".equals(user.getPassword())) 13 { 14 addFieldError("msg","密码不能为空.");15 } 16 return "login"; 17 } 18 19 }
- 重写validate()方法--这个action通用.
-
1 @Override 2 public void validate() 3 { 4 //测试校验代码 5 if("".equals(user.getUsername())) 6 { 7 addFieldError("msg", "用户名不能为空."); 8 } 9 if("".equals(user.getPassword())) 10 { 11 addFieldError("msg","密码不能为空."); 12 } 13 super.validate(); 14 }
-
编写validateXXX()方法-针对某个方法
-
1 public String login() throws Exception 2 { 3 Log4JFactory.getInstanceLogger(this).info("調用啦"); 4 return "success"; 5 } 6 7 8 public void validateLogin() 9 { 10 //测试校验代码 11 Log4JFactory.getInstanceLogger(this).info("validateLogin調用啦"); 12 if("".equals(user.getUsername())) 13 { 14 addFieldError("msg", "用户名不能为空."); 15 } 16 if("".equals(user.getPassword())) 17 { 18 addFieldError("msg","密码不能为空."); 19 } 20 21 }
- 使用struts2验证框架xml
- 验证与逻辑分离
- 提供代码可读性
- 命名规则
- actionName-validation.xml //action名称-validation.xml针对整个action
- actionName-person_update-validation.xml //action名称-方法名-validation.xml针对某个方法
- 文件存放路径
- 和action在同一个包下
- 文件格式
-
1 <!DOCTYPE validators PUBLIC 2 "-//Apache Struts//XWork Validator 1.0.3//EN" 3 "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"> 4 5 <validators> 6 <field name=""> 7 //name 字段名称 8 <field-validator type=""> 9 //指定校验规则 10 <message>messge</message> 11 </field-validator> 12 </field> 13 </validators>
-
-