Struts的类型转换及输入校验(Struts2的输入校验)
2016-03-09 09:52
645 查看
Struts输入校验:
(1)在Action类中处理方法进行校验,若没有指定方法就用execute()方法
(2)继承ActionSupport类,并重写其validate()方法实现输入校验
(3)应用struts2框架进行校验
1.使用execute方法校验:
public String execute()throws Exception{
if(username.equals("")||username==null){
addFieldError("username", "username为空");
}else if(password.equals("")||password==null){
addFieldError("password", "password为空");
}else if(repassword.equals("")||repassword==null){
addFieldError("repassword", "repassword为空");
}else if(!repassword.equals(password)){
addFieldError("password", "两次输入密码不同");
}
if(hasErrors()){
return INPUT;
}
return SUCCESS;
}
2.重写validate()方法进行校验:
在action中写:
public void validate(){
if(username.equals("")||username==null){
addFieldError("username", "username为空");
}else if(password.equals("")||password==null){
addFieldError("password", "password为空");
}else if(repassword.equals("")||repassword==null){
addFieldError("repassword", "repassword为空");
}else if(!repassword.equals(password)){
addFieldError("password", "两次输入密码不同");
}else if(age<1||age>150){
addFieldError("age", "age必须在1到150之间");
}
}
3.继承struts框架进行校验:
跟action写在一个路径下,命名规则是:actionName-validation.xml或者actionName-别名-validation.xml
<validate></validate>标签:使用该标签可以声明字段型或非字段型两种类型校验器
字段型校验器配置格式如下:
<validator type="校验器名称">
<param name="fieldName>待校验字段名</param>
<message>校验失败信息</message>
</validator>
非字段型校验器格式如下:
<validator type="校验器名称>
<param name="expression">OGNL表达式取值</param>
<message>校验失败信息</message>
</validator>
<field></field>标签:使用该标签可以在其内声明多个字段型后者非字段型校验器
<field name="待校验字段名">
<field-validator type="校验器名">
<param name="参数名">参数值</param>
<message>校验失败信息</message>
</field-validator>
</field>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="username">
<field-validator type="requiredstring">
<!-- 去空格 -->
<param name="trim">true</param>
<message>username为空!</message>
</field-validator>
</field>
<field name="password">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>password为空!</message>
</field-validator>
</field>
<field name="repassword">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>repassword为空!</message>
</field-validator>
<field-validator type="fieldexpression">
<param name="expression">
<![CDATA[(repassword.equals(password))]]>
</param>
<message>两次输入密码不同!</message>
</field-validator>
</field>
<field name="age">
<field-validator type="int">
<param name="min">1</param>
<param name="max">150</param>
<message>age必须在1到150之间</message>
</field-validator>
</field>
</validators>
Struts2提供了下面几种类型的校验框架:
required:检查字段是否为空
requiredstring:检查字段是否为字符串且是否为空
int:检查字段是否为整数且在[min,max]范围内
double:检查字段是否为双精度浮点数且在[min,max]范围内
date:检查字段是否为日期格式且在[min,max]范围内
expression:对指定OGNL表达式求值
fieldexpression:对指定OGNL表达式求值
email:检查字段是否为E-mail格式
url:检查字段是否为URL格式
visitor:引用指定对象各属性对应的检验规则
conversion:检查字段是否发生类型的错误
stringlength:检查字段长度是否在指定范围内
regex:检查字段是否匹配指定的正则表达式
(1)在Action类中处理方法进行校验,若没有指定方法就用execute()方法
(2)继承ActionSupport类,并重写其validate()方法实现输入校验
(3)应用struts2框架进行校验
1.使用execute方法校验:
public String execute()throws Exception{
if(username.equals("")||username==null){
addFieldError("username", "username为空");
}else if(password.equals("")||password==null){
addFieldError("password", "password为空");
}else if(repassword.equals("")||repassword==null){
addFieldError("repassword", "repassword为空");
}else if(!repassword.equals(password)){
addFieldError("password", "两次输入密码不同");
}
if(hasErrors()){
return INPUT;
}
return SUCCESS;
}
2.重写validate()方法进行校验:
在action中写:
public void validate(){
if(username.equals("")||username==null){
addFieldError("username", "username为空");
}else if(password.equals("")||password==null){
addFieldError("password", "password为空");
}else if(repassword.equals("")||repassword==null){
addFieldError("repassword", "repassword为空");
}else if(!repassword.equals(password)){
addFieldError("password", "两次输入密码不同");
}else if(age<1||age>150){
addFieldError("age", "age必须在1到150之间");
}
}
3.继承struts框架进行校验:
跟action写在一个路径下,命名规则是:actionName-validation.xml或者actionName-别名-validation.xml
<validate></validate>标签:使用该标签可以声明字段型或非字段型两种类型校验器
字段型校验器配置格式如下:
<validator type="校验器名称">
<param name="fieldName>待校验字段名</param>
<message>校验失败信息</message>
</validator>
非字段型校验器格式如下:
<validator type="校验器名称>
<param name="expression">OGNL表达式取值</param>
<message>校验失败信息</message>
</validator>
<field></field>标签:使用该标签可以在其内声明多个字段型后者非字段型校验器
<field name="待校验字段名">
<field-validator type="校验器名">
<param name="参数名">参数值</param>
<message>校验失败信息</message>
</field-validator>
</field>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="username">
<field-validator type="requiredstring">
<!-- 去空格 -->
<param name="trim">true</param>
<message>username为空!</message>
</field-validator>
</field>
<field name="password">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>password为空!</message>
</field-validator>
</field>
<field name="repassword">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>repassword为空!</message>
</field-validator>
<field-validator type="fieldexpression">
<param name="expression">
<![CDATA[(repassword.equals(password))]]>
</param>
<message>两次输入密码不同!</message>
</field-validator>
</field>
<field name="age">
<field-validator type="int">
<param name="min">1</param>
<param name="max">150</param>
<message>age必须在1到150之间</message>
</field-validator>
</field>
</validators>
Struts2提供了下面几种类型的校验框架:
required:检查字段是否为空
requiredstring:检查字段是否为字符串且是否为空
int:检查字段是否为整数且在[min,max]范围内
double:检查字段是否为双精度浮点数且在[min,max]范围内
date:检查字段是否为日期格式且在[min,max]范围内
expression:对指定OGNL表达式求值
fieldexpression:对指定OGNL表达式求值
email:检查字段是否为E-mail格式
url:检查字段是否为URL格式
visitor:引用指定对象各属性对应的检验规则
conversion:检查字段是否发生类型的错误
stringlength:检查字段长度是否在指定范围内
regex:检查字段是否匹配指定的正则表达式
相关文章推荐
- java S2SH项目框架Struts2.3+Spring3.1+Hibernate3.6框架搭建整合以及实例demo代码分享
- 【Spring】Spring系列6之Spring整合Hibernate
- Java垃圾回收机制(转)
- java
- 【Spring】Spring系列5之Spring支持事务处理
- struts2 form提交表单自动封装对象,后台取值为null的几个原因
- SpringMVC responseBody注解分析
- Java核心技术学习笔记之六——线程
- java中HashMap的用法
- 【Spring】Spring系列4之Spring支持JDBC
- XUtils包在安卓5.0以上报错“java.IOException: stack size 1036KB”
- 【技术】JavaSE环境下JPA实体类自动注册
- eclipse项目持续报红解决
- 【Spring】Spring系列3之Spring AOP
- Java反射之gettter和setter方法
- Spring AOP: proxy-target-class 值的意思
- java遇到的问题
- 【Spring】Spring系列2之bean的配置
- JDK常用的package
- 【Spring】Spring系列1之Spring概述