当前位置: 代码迷 >> Web前端 >> strut2 数据校验小结
  详细解决方案

strut2 数据校验小结

热度:576   发布时间:2012-11-16 14:12:14.0
strut2 数据校验总结

1、Action中所有方法进行输入校验

         

通过重写validate()方法实现,validate()方法会校验action中所有与execute方法签名相同的方法。当某
个数据校验失败时,我们应该调用addFieldError()方法往系统的fieldErrors添加校验失败信息(为了使用
addFieldError()方法,action可以继承ActionSupport),如果系统的fieldErrors包含失败信息,struts2会将
请求转发到名为input的result。在input视图中可以通过<s:fielderror/>显示失败信息。
 
validate()使用例子:
publicvoid validate(){
  if(this.mobile==null||"".equals(this.mobile.trim())){
       this.addFieldError("username","手机号不能为空");
  }else{
       if(!Pattern.compile("^1[358]\\d{9}").matcher(this.mobile.trim()).matches()){
       this.addFieldError("mobile","手机号的格式不正确");
  }}
}

2、对action指定方法进行校验

  

3、基于XML配置方式实现对action的所有方法进行校验

   Struts 2 中的每个Action都可以有一个验证文件,该验证文件与Action处于同目录中。

4、基于XML配置方式实现对指定action方法校验

 

5楼emoven1小时前
补充一点 当在验证时如果调用了addFieldError()方法。一般是返回一个 input 的 result 字符串;如果需要返回其他的字符串,可以在方法开头加上@InputConfig(resultName="error")就会返回一个 error 字符串。
4楼liqudanlove3天前 22:44
不错 顶一个
3楼xiaowenit3天前 22:33
刚开始学习数据效验
2楼liqudanlove3天前 22:24
楼上那位的问题提的不错
1楼xiaowenit3天前 15:49
在浏览器不是会有数据效验吗
Re: emoven3天前 22:18
回复xiaowenitn有些程序可能绕过浏览器的验证