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

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:检查字段是否匹配指定的正则表达式
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: