您的位置:首页 > 编程语言 > Java开发

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: