Struts2输入效验
2016-03-30 17:15
141 查看
输入效验分为2中一种客户端一种服务器,客户端只能做初步效验必须要有服务器效验
手工编写代码实现对action中的所有方法输入校验
通过重写validate()方法实现,当某一个数据校验失败时,
我们应该调用addFieldError()方法往系统的fieldErrors添加校验失败信息(为了使用addFieldError()方法,action需要继承actionSupport),
如果系统的fieldErrors包含失败信息,struts2会将请求转发到名为input的result视图中可以通过<s:fielderror/>
显示失败信息
validate()使用例子:
public class xxxAction extends ActionSupport
{
public void validate()
{
if(this.mobile==null ||"".equals(this.mobile.trim()))
{
this.addFieldError("mobile","手机号码不能为空");//第一个参数校验的字段,第2个参数错误信息
}else{
//pattern为正则对象
if(!Pattern.compile("^1[358]\\d{9}").matcher(this.mobile.trim()).matches())
{
this.addFieldError("mobile","手机号的格式不正确");
}
}
}
}
验证失败后,请求转发至input视图
<result name="input">/xxxx.jsp</result>
在xxxx.jsp页面中使用<s:fielderror/>显示失败信息。
对指定方法输入校验
通过重写validateXxx()方法,validateXxx()只会校验名为Xxx的方法。其中Xxx的第一个字母要大写。
validate()使用例子:
public class xxxAction extends ActionSupport
{
public void validateXxx()//Xxx为action里方法名
{
if(this.mobile==null ||"".equals(this.mobile.trim()))
{
this.addFieldError("mobile","手机号码不能为空");//第一个参数校验的字段,第2个参数错误信息
}else{
if(!Pattern.compile("^1[358]\\d{9}").matcher(this.mobile.trim()).matches())
{
this.addFieldError("mobile","手机号的格式不正确");
}
}
}
}
xml对方法效验-validation
在需要效验的Action包里建一个XXXAction-validation.xml文件这会对以XXX命名的Action里的所有方法进行
效验。对指定方法的进行效验只需要在文件名上做手脚
(ACTION的名字—访问该方法映射路径(login_add)-validation.xml)
效验模版<这个配置文件的头在xwork-core-2.2.1.jar包下META-INF下xwork-validator-1.0.3.dtd里粘贴一个>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd">
<validators>
<field name="username">
<field-validator type="requiredstring">
<message>用户名不能为空</message>
</field-validator>
</field>
<field name="mobile">
<field-validator type="requiredstring">
<message>手机号不能为空</message>
</field-validator>
<field-validator type="regex">
<param name="expression">
<![CDATA[^1[358]\d{9}$]]>
</param>
<message>手机号格式不正确!</message>
</field-validator>
</field>
</validators>
手工编写代码实现对action中的所有方法输入校验
通过重写validate()方法实现,当某一个数据校验失败时,
我们应该调用addFieldError()方法往系统的fieldErrors添加校验失败信息(为了使用addFieldError()方法,action需要继承actionSupport),
如果系统的fieldErrors包含失败信息,struts2会将请求转发到名为input的result视图中可以通过<s:fielderror/>
显示失败信息
validate()使用例子:
public class xxxAction extends ActionSupport
{
public void validate()
{
if(this.mobile==null ||"".equals(this.mobile.trim()))
{
this.addFieldError("mobile","手机号码不能为空");//第一个参数校验的字段,第2个参数错误信息
}else{
//pattern为正则对象
if(!Pattern.compile("^1[358]\\d{9}").matcher(this.mobile.trim()).matches())
{
this.addFieldError("mobile","手机号的格式不正确");
}
}
}
}
验证失败后,请求转发至input视图
<result name="input">/xxxx.jsp</result>
在xxxx.jsp页面中使用<s:fielderror/>显示失败信息。
对指定方法输入校验
通过重写validateXxx()方法,validateXxx()只会校验名为Xxx的方法。其中Xxx的第一个字母要大写。
validate()使用例子:
public class xxxAction extends ActionSupport
{
public void validateXxx()//Xxx为action里方法名
{
if(this.mobile==null ||"".equals(this.mobile.trim()))
{
this.addFieldError("mobile","手机号码不能为空");//第一个参数校验的字段,第2个参数错误信息
}else{
if(!Pattern.compile("^1[358]\\d{9}").matcher(this.mobile.trim()).matches())
{
this.addFieldError("mobile","手机号的格式不正确");
}
}
}
}
xml对方法效验-validation
在需要效验的Action包里建一个XXXAction-validation.xml文件这会对以XXX命名的Action里的所有方法进行
效验。对指定方法的进行效验只需要在文件名上做手脚
(ACTION的名字—访问该方法映射路径(login_add)-validation.xml)
效验模版<这个配置文件的头在xwork-core-2.2.1.jar包下META-INF下xwork-validator-1.0.3.dtd里粘贴一个>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd">
<validators>
<field name="username">
<field-validator type="requiredstring">
<message>用户名不能为空</message>
</field-validator>
</field>
<field name="mobile">
<field-validator type="requiredstring">
<message>手机号不能为空</message>
</field-validator>
<field-validator type="regex">
<param name="expression">
<![CDATA[^1[358]\d{9}$]]>
</param>
<message>手机号格式不正确!</message>
</field-validator>
</field>
</validators>
相关文章推荐
- struts2 返回json数据
- Struts2国际化
- Struts2标签
- [Java]XML数据的请求和DOM技术解析
- java中可变长参数的定义及使用方法
- SpringMVC 重定向后台传参数 中文乱码问题
- 为Struts2指定多个配置文件
- Struts2文件上传
- Struts2文件上传和下载
- Struts2常用属性配置
- Struts2视图类型
- MyEclipse搭建SSH框架 Struts2.1+Spring3.0+hibernate3.3
- 经典冒泡排序算法JAVA版本
- Java System
- spring-data-jpa初步开始的helloworld
- Struts2 中 OGNL各作用域对象怎么取
- springmvc附件上传核心代码
- 基于注解的Spring AOP的配置和使用
- Java解析HTML之HTMLParser使用与详解
- java servlet的工作原理