Struts2之输入校验
2017-12-15 11:06
337 查看
一、手工编写代码进行校验(action中的所有方法)
1.登陆界面代码
2.action代码
继承ActionSupport类
定义私有属性并创建set,get方法
创建简单的save,update方法
输入校验
3.配置文件
fieldError
当校验失败时,为了向用户输出错误信息,调用addFieldError()方法向系统提供的fieldError中保存错误信息,当fieldError中有一个或多个错误信息时,页面会自动跳转到input页面中,在input页面中用将错误信息输出
注意: 如果类型转换器出错也会在fieldError中报错,并跳转到input页面
若仅校验一个方法,验证方法名改为validateXxx(),注意要校验方法首字母大写,如validateSave()
若validateXxx(),validate()方法同时存在,会先调用validateXxx(),方法,后调用validate()方法,若冲突以validateXxx()为准
——————————————————————————————————
二、基于xml配置的方式进行校验
Struts2为我们提供了校验器能满足90%以上的需求
1.action 中代码
继承ActionSupport类
定义私有属性并创建set,get方法
创建简单的save,update方法
2.xml
必须与action在同一个包下,名字为ActionClassName-validation.xml如validate.PersonAction,则应为PersonAction-validation.xml
校验器位置struts2-core–>com.opensymphony.xwork2.validator.validators–>default.xml
我的struts2的版本是2.5.13,为”regexExpression”,与2.3版本为expression
同样需提供input页面,并用输出错误信息
**对于action中的某个方法进行校验:ActionClassName-ActionName-validation.xml,ActionName,在struts.xml中以通配符的方式进行书写
如PersonAction-a_save-validation.xml**
当action继承于某个类时,其校验器一同被继承
1.登陆界面代码
<%--读取fieldError中的错误信息,注意引入标签--%> <s:fielderror/> <form action="${pageContext.request.contextPath}/person/a_save.action" method="post"> <%--注意action的name的书写--%> 用户名:<input type="text" name="username"/><br/> 手机号:<input type="text" name="mobile"/><br/> <input type="submit" value="提 交"/></form>
2.action代码
继承ActionSupport类
定义私有属性并创建set,get方法
private String username; private String mobile;
创建简单的save,update方法
输入校验
public void validate() { if(this.username==null || "".equals(this.username.trim())){//trim先后去空格 this.addFieldError("username", "用户名不能为空");//向系统的fieldError中添加错误信息,addFieldError("校验属性", "错误信息") } if(this.mobile==null || "".equals(this.mobile.trim())){ this.addFieldError("mobile", "手机号不能为空"); }else{ if(!Pattern.compile("^1[358]\\d{9}$").matcher(this.mobile).matches()){//利用正则表达式进行格式校验,手机号的格式1,3/5/8,后面是9个数字,注意/的转义 this.addFieldError("mobile", "手机号格式不正确"); } } }
3.配置文件
<package name="vali" namespace="/person" extends="struts-default"> <action name="a_*" class="validate.PersonAction" method="{1}"> <result name="input" > /validation/login.jsp</result> </action> </package>
fieldError
当校验失败时,为了向用户输出错误信息,调用addFieldError()方法向系统提供的fieldError中保存错误信息,当fieldError中有一个或多个错误信息时,页面会自动跳转到input页面中,在input页面中用将错误信息输出
注意: 如果类型转换器出错也会在fieldError中报错,并跳转到input页面
若仅校验一个方法,验证方法名改为validateXxx(),注意要校验方法首字母大写,如validateSave()
若validateXxx(),validate()方法同时存在,会先调用validateXxx(),方法,后调用validate()方法,若冲突以validateXxx()为准
——————————————————————————————————
二、基于xml配置的方式进行校验
Struts2为我们提供了校验器能满足90%以上的需求
1.action 中代码
继承ActionSupport类
定义私有属性并创建set,get方法
创建简单的save,update方法
2.xml
必须与action在同一个包下,名字为ActionClassName-validation.xml如validate.PersonAction,则应为PersonAction-validation.xml
校验器位置struts2-core–>com.opensymphony.xwork2.validator.validators–>default.xml
<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"> //我的struts2的版本是2.5.13,与2.3版本写的不同,由struts2-core下要引用的dtd文件决定 <validators> <field name="username"> <field-validator type="requiredstring"> <param name="trim">true</param> <message>用户名不能为空!</message> </field-validator> </field> <field name="mobile"> <field-validator type="requiredstring"> <message>手机号不能为空!</message> </field-validator> <field-validator type="regex"> <param name="regexExpression"><![CDATA[^1[358]\d{9}$]]> </param> <message>手机号格式不正确!</message> </field-validator> </field> </validators>
我的struts2的版本是2.5.13,为”regexExpression”,与2.3版本为expression
同样需提供input页面,并用输出错误信息
**对于action中的某个方法进行校验:ActionClassName-ActionName-validation.xml,ActionName,在struts.xml中以通配符的方式进行书写
如PersonAction-a_save-validation.xml**
当action继承于某个类时,其校验器一同被继承
相关文章推荐
- Struts2输入校验
- 4.2.1: Struts2的输入校验---编写校验规则文件
- Struts2:输入 da24 校验-采用手工编写代码实现
- struts2输入校验完整解析222222
- 使用Struts2验证框架实现输入校验
- 六、Struts2之输入校验
- Struts2输入校验
- Struts2输入校验
- struts2自定义方法的输入校验
- Struts2输入校验总结
- Struts2 无任何输入校验返回input解决
- Struts2输入校验(三) addActionError的用法
- Struts2的输入校验
- Struts2(七)基于XML方式进行数据输入校验
- Struts2的输入校验
- Struts2输入校验(一)配置文件校验
- 4.2.2: Struts2的输入校验---国际化提示信息
- Struts2:输入校验-基于XML配置方式实现
- 详解Struts2的输入校验一
- Struts2输入校验之validate输入校验方式