Webwork验证框架(含自定义验证规则)
来源:互联网 发布:人大报刊资料数据库 编辑:程序博客网 时间:2024/06/11 11:21
Action:
package ch13.example1;
import com.opensymphony.xwork.ActionSupport;
import com.opensymphony.xwork.Validateable;
public class Test extends ActionSupport...{
private User user;
public User getUser() ...{
return user;
}
public void setUser(User user) ...{
this.user = user;
}
public String execute() throws Exception ...{
return SUCCESS;
}
}
import com.opensymphony.xwork.ActionSupport;
import com.opensymphony.xwork.Validateable;
public class Test extends ActionSupport...{
private User user;
public User getUser() ...{
return user;
}
public void setUser(User user) ...{
this.user = user;
}
public String execute() throws Exception ...{
return SUCCESS;
}
}
JavaBean
package ch13.example1;
public class User ...{
private double salary;
private int age;
private String name;
public int getAge() ...{
return age;
}
public void setAge(int age) ...{
this.age = age;
}
public String getName() ...{
return name;
}
public void setName(String name) ...{
this.name = name;
}
public double getSalary() ...{
return salary;
}
public void setSalary(double salary) ...{
this.salary = salary;
}
}
public class User ...{
private double salary;
private int age;
private String name;
public int getAge() ...{
return age;
}
public void setAge(int age) ...{
this.age = age;
}
public String getName() ...{
return name;
}
public void setName(String name) ...{
this.name = name;
}
public double getSalary() ...{
return salary;
}
public void setSalary(double salary) ...{
this.salary = salary;
}
}
JSP:
<%...@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%...@ taglib uri="webwork" prefix="ww"%>
<%...@ page import="java.util.*" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
<ww:form action="testValidate">
<ww:textfield label="salary" name="user.salary"/><br>
<ww:textfield label="name" name="user.name"/><br>
<ww:textfield label="age" name="user.age"/><br>
<ww:submit value="update user"/>
</ww:form>
</body>
</html>
pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%...@ taglib uri="webwork" prefix="ww"%>
<%...@ page import="java.util.*" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
<ww:form action="testValidate">
<ww:textfield label="salary" name="user.salary"/><br>
<ww:textfield label="name" name="user.name"/><br>
<ww:textfield label="age" name="user.age"/><br>
<ww:submit value="update user"/>
</ww:form>
</body>
</html>
准备工作已经做好了,下面我们要做的就是对name字段进行验证,
验证分两种情况
(1)不能为空,使用webwork预置验证规则
(2)输入内容必须为"gaoxiang" 这部分使用自定义规则
首先,在Test Action包内建立验证规则,命名为Test-validation.xml
其中resquiredstring规则为webwork预置,另一个是自定义规则
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//openSymphony Group//XWork Validator 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="user.name">
<field-validator type="requiredstring">
<message>name required</message>
</field-validator>
<field-validator type="myValidator">
<message>name not equal gaoxiang</message>
</field-validator>
</field>
</validators>
<!DOCTYPE validators PUBLIC
"-//openSymphony Group//XWork Validator 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="user.name">
<field-validator type="requiredstring">
<message>name required</message>
</field-validator>
<field-validator type="myValidator">
<message>name not equal gaoxiang</message>
</field-validator>
</field>
</validators>
在classpath下建立validation.xml
需要说明的是,webwork的jar包中已经包含了validation.xml(2.2.4版本中在xwork.jar中,叫default,xml)
我们并不需要额外建立validation.xml就可以使用这些规则,但我们自定义的规则必须建立validation.xml并在其中
定义,但如果classpath下有了我们自己建立的validation.xml,webwor预置的那些规则就失效了,所以,我们要把webowork预置的那些规则复制到我们建立的validation,xml中,代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<validators>
<validator name="myValidator" class="ch13.example1.myValidator"/>
<validator name="required" class="com.opensymphony.xwork.validator.validators.RequiredFieldValidator" />
<validator name="requiredstring" class="com.opensymphony.xwork.validator.validators.RequiredStringValidator" />
<validator name="int" class="com.opensymphony.xwork.validator.validators.IntRangeFieldValidator" />
<validator name="double" class="com.opensymphony.xwork.validator.validators.DoubleRangeFieldValidator" />
<validator name="date" class="com.opensymphony.xwork.validator.validators.DateRangeFieldValidator" />
<validator name="expression" class="com.opensymphony.xwork.validator.validators.ExpressionValidator" />
<validator name="fieldexpression" class="com.opensymphony.xwork.validator.validators.FieldExpressionValidator" />
<validator name="email" class="com.opensymphony.xwork.validator.validators.EmailValidator" />
<validator name="url" class="com.opensymphony.xwork.validator.validators.URLValidator" />
<validator name="visitor" class="com.opensymphony.xwork.validator.validators.VisitorFieldValidator" />
<validator name="conversion" class="com.opensymphony.xwork.validator.validators.ConversionErrorFieldValidator" />
<validator name="stringlength" class="com.opensymphony.xwork.validator.validators.StringLengthFieldValidator" />
<validator name="regex" class="com.opensymphony.xwork.validator.validators.RegexFieldValidator" />
</validators>
<validators>
<validator name="myValidator" class="ch13.example1.myValidator"/>
<validator name="required" class="com.opensymphony.xwork.validator.validators.RequiredFieldValidator" />
<validator name="requiredstring" class="com.opensymphony.xwork.validator.validators.RequiredStringValidator" />
<validator name="int" class="com.opensymphony.xwork.validator.validators.IntRangeFieldValidator" />
<validator name="double" class="com.opensymphony.xwork.validator.validators.DoubleRangeFieldValidator" />
<validator name="date" class="com.opensymphony.xwork.validator.validators.DateRangeFieldValidator" />
<validator name="expression" class="com.opensymphony.xwork.validator.validators.ExpressionValidator" />
<validator name="fieldexpression" class="com.opensymphony.xwork.validator.validators.FieldExpressionValidator" />
<validator name="email" class="com.opensymphony.xwork.validator.validators.EmailValidator" />
<validator name="url" class="com.opensymphony.xwork.validator.validators.URLValidator" />
<validator name="visitor" class="com.opensymphony.xwork.validator.validators.VisitorFieldValidator" />
<validator name="conversion" class="com.opensymphony.xwork.validator.validators.ConversionErrorFieldValidator" />
<validator name="stringlength" class="com.opensymphony.xwork.validator.validators.StringLengthFieldValidator" />
<validator name="regex" class="com.opensymphony.xwork.validator.validators.RegexFieldValidator" />
</validators>
验证类ch13.exmaple1.myValidator
继承FiledValidatorSupport并覆盖validate方法即可,出现错误用addFieldError设置相关错误信息,如果不进行addFieldError,则验证通过
package ch13.example1;
import com.opensymphony.xwork.validator.ValidationException;
import com.opensymphony.xwork.validator.validators.FieldValidatorSupport;
public class myValidator extends FieldValidatorSupport ...{
public void validate(Object obj) throws ValidationException ...{
String name=getFieldName();
String value=(String)getFieldValue(name,obj);
if(!value.equals("gaoxiang")&&!value.equals(""))...{
addFieldError(name,obj);
}
}
}
import com.opensymphony.xwork.validator.ValidationException;
import com.opensymphony.xwork.validator.validators.FieldValidatorSupport;
public class myValidator extends FieldValidatorSupport ...{
public void validate(Object obj) throws ValidationException ...{
String name=getFieldName();
String value=(String)getFieldValue(name,obj);
if(!value.equals("gaoxiang")&&!value.equals(""))...{
addFieldError(name,obj);
}
}
}
运行页面,首先不输入name,系统会提示必须输入name required,输入非"gaoxiang",系统会提示name not equal gaoxiang
- Webwork验证框架(含自定义验证规则)
- WebWork教程-验证框架
- WebWork教程-验证框架
- js 表单验证(含自定义)
- easyui自定义验证规则
- 自定义验证规则
- struts自定义验证规则
- Laravel-自定义验证规则
- STRUTS2 验证框架--WebWork Validation使用笔记
- WPF数据验证(3)——自定义验证规则
- Struts验证框架常用的验证规则
- 7.1.6: 自定义验证规则
- Yii 自定义model验证规则
- DWZ表单自定义验证规则
- .Net CSLA框架 验证规则问题 “对象含无效值,因此不能保存”
- 自定义formbean验证框架
- MVC框架自定义验证
- WebWork中的数据验证 (转载)
- Windows常用运行命令
- 神泣逆向工程
- 免费的asp.net 2.0的免费空间 50M
- 数据库中三范式的理解
- conn
- Webwork验证框架(含自定义验证规则)
- linux下date命令帮助里没有说明的好东东:日期的计算
- index(三联级)
- 编程笔记——终于又看见我的DTC了
- 美学者:中国如果有核大战能力就应告诉别人
- process三联级
- Java模拟网站登录
- 一个简单的NHibernate例子
- 忙了一天~