struts2中使用xml进行validation验证的两种方式
2011-04-23 14:02
716 查看
在struts中,根据配置的validation.xml文件进行页面输入项目的验证已经众所周知,本文介绍在struts2中两种validation.xml的配置方式。可以根据不同的需要进行不同的配置。
以下以login页面输入firstname,lastname,和age为例进行说明。
struts.xml中,成功的话转向成功页面。不成功的话转回到原页面。
首先建立userbean文件。
文件名:UserBean.java
包:struts2.login.bean
文件内容:
对于这个文件,有两点请注意:
1,action文件和bean文件没有放在相同的包下,这是为了说明第二种xml配置的文件路径所用。
2,action文件中的validate方法只是起到一个debug错误message的作用,可去掉。
然后建立login.jsp文件,
文件位置: /Webroot的目录下
文件内容:
然后是struts.xml文件,内容一目了然,没啥说的
文件内容就是firstname和lastname必须输入,age必须是整数,并且在1到150之间。至于xml文件的写法,这个可以参照对应的dtd和相应的帮助。
注意的地方,1,引用firstname等字段的时候,前面加上了userBean,这个userBean是定义在action的变量,这点要一致。
2,对一个字段的多个验证可以写在一起,可以参看age字段。
3,可以使用表达式引用设定的参数值。为${参数名}的形式。
这个文件配置完了,就可以运行了,运行一下,什么都不输入,效果如图。
第二种方法,在第一种方法的基础上进行修改。
把validation.xml文件中的内容修改一下。
文件名:LoginAction-validation.xml
文件位置:和action文件同目录
文件内容:
注意地方,1文件的命名,为“bean的class名-context参数指定的值-validation.xml”
2,文件中字段的名字的地方,不需要有userBean的前缀。
好,执行一下,效果如图:
总结一下:
第一种validation方式,把验证集中action的验证文件中。当验证的内容少或者不同的action验证的内容重复性小的时候适用。
第二种validation方式,把验证集中在bean的验证文件中。当多个action都需要对相同bean的内容进行验证时,比较方便。
以下以login页面输入firstname,lastname,和age为例进行说明。
struts.xml中,成功的话转向成功页面。不成功的话转回到原页面。
首先建立userbean文件。
文件名:UserBean.java
包:struts2.login.bean
文件内容:
package struts2.login; import java.util.Iterator; import java.util.Map; import java.util.Set; import struts2.login.bean.UserBean; import com.opensymphony.xwork2.ActionSupport; @SuppressWarnings("serial") public class LoginAction extends ActionSupport{ private UserBean userBean; @Override public String execute() throws Exception { // TODO Auto-generated method stub return SUCCESS; } public UserBean getUserBean() { return userBean; } public void setUserBean(UserBean userBean) { this.userBean = userBean; } @Override public void validate() { // TODO Auto-generated method stub Map map = this.getFieldErrors(); Set set = map.keySet(); for (Iterator iter = set.iterator(); iter.hasNext();) { System.out.println(map.get(iter.next())); } } }
对于这个文件,有两点请注意:
1,action文件和bean文件没有放在相同的包下,这是为了说明第二种xml配置的文件路径所用。
2,action文件中的validate方法只是起到一个debug错误message的作用,可去掉。
然后建立login.jsp文件,
文件位置: /Webroot的目录下
文件内容:
<%@ page contentType="text/html; charset=gb2312" %> <%@ taglib uri="/struts-tags" prefix="s"%> <html> LOGIN SUCCESS </html>
然后是struts.xml文件,内容一目了然,没啥说的
<?xml version="1.0" encoding="UTF-8"?> <!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="userBean.firstname"> <field-validator type="requiredstring"> <message>request firstname</message> </field-validator> </field> <field name="userBean.lastname"> <field-validator type="requiredstring"> <message>request lastname</message> </field-validator> </field> <field name="userBean.age"> <field-validator type="required"> <message>request integer</message> </field-validator> <field-validator type="int"> <param name="min">1</param> <param name="max">150</param> <message>should between ${min} and ${max}</message> </field-validator> </field> </validators>
文件内容就是firstname和lastname必须输入,age必须是整数,并且在1到150之间。至于xml文件的写法,这个可以参照对应的dtd和相应的帮助。
注意的地方,1,引用firstname等字段的时候,前面加上了userBean,这个userBean是定义在action的变量,这点要一致。
2,对一个字段的多个验证可以写在一起,可以参看age字段。
3,可以使用表达式引用设定的参数值。为${参数名}的形式。
这个文件配置完了,就可以运行了,运行一下,什么都不输入,效果如图。
第二种方法,在第一种方法的基础上进行修改。
把validation.xml文件中的内容修改一下。
文件名:LoginAction-validation.xml
文件位置:和action文件同目录
文件内容:
<?xml version="1.0" encoding="UTF-8"?> <!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="firstname"> <field-validator type="requiredstring"> <message>request firstname</message> </field-validator> </field> <field name="lastname"> <field-validator type="requiredstring"> <message>request lastname</message> </field-validator> </field> <field name="age"> <field-validator type="required"> <message>request integer</message> </field-validator> <field-validator type="int"> <param name="min">1</param> <param name="max">150</param> <message>should between ${min} and ${max}</message> </field-validator> </field> </validators>
注意地方,1文件的命名,为“bean的class名-context参数指定的值-validation.xml”
2,文件中字段的名字的地方,不需要有userBean的前缀。
好,执行一下,效果如图:
总结一下:
第一种validation方式,把验证集中action的验证文件中。当验证的内容少或者不同的action验证的内容重复性小的时候适用。
第二种validation方式,把验证集中在bean的验证文件中。当多个action都需要对相同bean的内容进行验证时,比较方便。
相关文章推荐
- Struts2 官方教程:使用XML进行表单验证(Form Validation Using XML)
- Struts2之验证框架二(通过action类名-validation.xml方式)
- struts2中使用xml进行validate验证
- struts2利用annotation和xml两种方式验证
- Struts2使用validation.xml验证时,如何显示字段的标签(未解决)
- struts2的数据验证之编码方式验证和validation.xml验证
- struts2 使用Validation框架进行数据验证
- struts2中两种validation.xml的配置方式_百度文库
- struts2中使用xml进行validate验证
- struts2官方 中文教程 系列十一:使用XML进行表单验证
- S6.2_Struts2_Validation ~ S6.5_Struts2_Validation 使用Validation框架实现验证的4种方式
- Struts2使用XML实现Validation校验数据的两种方法
- java struts2入门学习实例--使用struts进行验证
- Struts2-表单验证的两种方式
- Struts2验证框架的配置及validation.xml常用的验证规则
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
- struts2的配置解释以及使用ajax、创建传输json的两种方式
- struts2验证规则validation配置文件命名方式总结
- struts2中使用xml进行validation验证
- HttModule和抽象类BasePage两种方式进行用户身份验证