- 浏览: 125358 次
- 性别:
- 来自: 深圳
文章分类
最新评论
上一节使用了Action类中的validate方法进行校验,此种校验方式适合较为复杂的校验情况。而本节将介绍使用配置文件的校验方式!
在xwork.jar包的com.opensymphony.xwork2.validator.validators目录下有一个default.xml文件。这里面定义了许多struts2的预设的校验器。
1,RegisterAction-validation.xml。放在与action同一目录下,知名得义,不难理解
如果要给action中的方法abc校验,则文件名可以这样命名:RegisterAction-abc-validation.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"> <!--此文件必须和RegisterAction.java在同一个目录下--> <!--对应的type定义都在xwork.jav包下的com.opensymphony.xwork2.validator.validators.default.xml文件 --> <validators> <field name="username"> <field-validator type="requiredstring"> <param name="trim">true</param> <message>username should not be blank!</message> </field-validator> <field-validator type="stringlength"> <param name="minLength">6</param> <param name="maxLength">10</param> <message>username should be between ${minLength} and ${maxLength}</message> </field-validator> </field> <field name="password"> <field-validator type="requiredstring"> <message>password should not be null</message> </field-validator> <field-validator type="stringlength"> <param name="minLength">6</param> <param name="maxLength">10</param> <message>password should between ${minLength} and ${maxLength}</message> </field-validator> </field> <field name="repassword"> <field-validator type="requiredstring"> <message>repassword should not be null</message> </field-validator> <field-validator type="stringlength"> <param name="minLength">6</param> <param name="maxLength">10</param> <message>repassword should be between 6 and 10</message> </field-validator> </field> <field name="age"> <field-validator type="int"> <param name="min">1</param> <param name="max">150</param> <message>age should be between 1 and 150</message> </field-validator> </field> <field name="birthday"> <field-validator type="required"> <message>birthday should not be blank!</message> </field-validator> <field-validator type="date"> <param name="min">1998-12-12</param> <param name="max">2009-12-12</param> <message>the birthday should be between ${min} and ${max}</message> </field-validator> </field> <field name="graduation"> <field-validator type="required"> <message>graduation should not be blank!</message> </field-validator> <field-validator type="date"> <param name="min">2005-12-12</param> <param name="max">2007-12-12</param> <message>the graduation should be between ${min} and ${max}</message> </field-validator> </field> </validators>
这些都是filedError,客户端需使用<s:fielderror/>来接收错误提示。
如果在action中存在validate方法,则两边都会执行,即会执行配置文件中的校验也会执行validate中的校验,建议不重写validate中的校验。
PS:如果存在子action继承父action的情况,那么校验的顺序会如何呢?如下情况
父类action
ParentAction{ public void test() }
其校验文件是
ParentAction-validation.xml ParentAction-test-validation.xml
子类action
ChildAction extends ParentAction{ public void test() }
其校验文件是
ParentAction-validation.xml ParentAction-test-validation.xml
则执行顺序是,先执行父类中的ParentAction-validation.xml,ParentAction-test-validation.xml
再执行子类中的ParentAction-validation.xml,ParentAction-test-validation.xml
发表评论
-
Struts2(18):Struts2深入探索续2
2011-06-06 03:15 636Struts2与Servlet是低耦合的,这可使项目不依赖于具 ... -
Struts2(17):Struts2深入探索续
2011-06-06 00:26 11701,struts2有属性驱动方式与模型驱动两种方式:之前的例子 ... -
Struts2(16): Struts2深入探索
2011-06-05 12:56 970先来看看struts2包中的一些配置文件: 1,strut ... -
Struts2(15):Struts2的国际化续
2011-06-04 23:38 952Struts2中action错误的国际化 在action类的 ... -
Struts2(14):Struts2的国际化
2011-06-04 02:44 927先看看JAVA的国际化实现:JAVA国际化是使用java.ut ... -
Struts2(13):Struts2的上传下载续2
2011-06-04 00:07 968本节主要介绍上传任意数据的文件、指定文件类型上传与Struts ... -
Struts2(12):Struts2的上传下载续
2011-05-29 12:40 958使用Struts2结束common的fileupload和io ... -
Struts2(11):Struts2的上传下载
2011-05-29 01:00 899首先来看看在JSP中上传是如何做的: 从upload.jsp ... -
Struts2(10):Struts2的监听器与验权小例
2011-05-28 18:27 3089Struts2的监听器: 在xwork-2.0.7.jar包 ... -
Struts2(6):Struts2的输入校验2
2011-05-22 18:13 1124遇到类型转换错误的时候(也就是说不能进行类型转换),strut ... -
Struts2(5):Struts2的输入校验
2011-05-22 16:23 11621,Register.jsp,一个注册页面,包括用户名,密码, ... -
Struts2(4):Struts2类型转换2
2011-05-22 12:35 11071,修改上一节的input.jsp文件 <s:form ... -
Strtus2(3):struts2的类型转换
2011-05-21 23:34 10511,新建一个Point类,包含两个变量x,y。只有set,ge ... -
Struts2(2):Struts2的输入检验
2011-05-21 12:44 9851:新建一个login2.jsp,使用Struts2的标签编写 ... -
Struts2(1):入门与配置
2011-05-21 11:51 5931,在MyEclipse中新建一个WEB工程:struts2d ... -
Struts2(9):开发自己的Struts2拦截器(编码与配置)
2011-05-15 21:16 1566要开发自己的Struts2拦截器类,需要实现Inte ... -
Struts2(8):拦截器的简单实现原理
2011-05-15 18:29 908什么是拦截器: 拦截器,在AOP(Aspect-Oriente ...
相关推荐
综上所述,Struts2的输入校验机制不仅支持基本的手动校验,还提供了高度可配置和扩展的验证框架,使得开发者能够根据应用的具体需求,灵活地实现各种校验逻辑,从而提升应用程序的质量和用户体验。
Struts2作为一款流行的Java Web开发框架,提供了一套强大的校验框架,使得开发者能够方便地对用户输入数据进行验证,确保数据的准确性和安全性。本文将深入探讨Struts2校验框架的应用,包括其核心概念、配置方式、...
- **配置**:在`struts.xml`配置文件中启用JSR 303支持,添加`<constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" />`。 4. **自定义校验器**: 如果默认的...
Struts2的输入校验配置主要通过XML文件进行,这个文件通常命名为`<Action-name>-validation.xml`,并放置在与Action类相同的包内。例如,一个名为`RegistAction`的Action对应的校验文件可能是`RegistAction-...
- XML配置:在`struts.xml`或相应的Action配置文件中,使用`<validators>`标签定义自定义校验器,通过`<field-validator>`指定需要应用该校验器的字段。 - 注解配置:在Action类的属性上使用自定义注解,通过注解...
Struts2的校验框架是基于Apache Commons Validator库的,它允许开发者定义一系列的验证规则来检查用户的输入。这些规则可以是简单的数据类型检查,如非空、长度限制,也可以是复杂的业务逻辑校验。校验过程通常分为...
- **XML配置文件**:Struts2支持基于XML的校验配置文件,分为局部校验配置文件和全局校验配置文件。局部校验文件针对单个Action类,而全局校验文件适用于整个应用。配置文件内容包括字段校验(field validation)和...
struts2的输入校验有两种方式: 一.重写validate()方式 二.采用配置文件的方式 先我们就以一个简单的登录的例子来讲解这个吧. 重点讲解下,第二个采用配置文件的方式: 1.添加一个xml的校验文件,保存在...
Struts2校验框架的配置文件通常命名为`validation.xml`,并遵循特定的DTD格式。例如,以下是一段典型的校验配置示例: ```xml <!DOCTYPE validators PUBLIC "-//OpenSymphonyGroup//XWork Validator 1.0.2//EN" ...
Struts2集成了Apache Commons Validator,可以通过配置XML文件定义校验规则。在struts.xml文件中配置`<validators>`元素,然后在Action类中创建一个ValidatorForm对象,将表单字段映射到该对象的属性,即可应用预...
3. **校验配置文件**:XML校验文件(如`validation.xml`)用于定义字段的验证规则,例如: ```xml 用户名不能为空 ``` 或者使用注解的方式直接在Action类的字段上定义验证规则,例如: ```java ...
为了使用Struts2框架,首先需要在项目的`web.xml`文件中配置过滤器。下面的示例展示了如何添加Struts2过滤器: ```xml <filter-name>struts2 <filter-class>org.apache.struts2.dispatcher.FilterDispatcher ...
Struts2集成Apache Commons Validator,允许开发者创建XML配置文件来定义校验规则。在这些XML文件中,你可以设置字段的校验规则,如长度、格式等。然后在Action类中声明对应的ActionForm,Struts2会基于这些规则进行...
总结,Struts2的输入校验机制提供了手动和自动两种方式,结合配置文件和内置校验器,能够实现灵活且强大的数据校验,有效地防止了非法数据的流入,提升了系统的安全性。在实际开发中,开发者可以根据业务需求选择...
"04校验框架.doc"可能涵盖了Struts2校验框架的基本用法,包括XML配置、自定义校验规则、错误处理等方面的内容。而"03输入校验.doc"则可能侧重于实际的用户输入验证,探讨如何通过校验器确保用户提交的数据符合预期。...
- Struts2允许通过XML配置文件定义校验规则,这些规则与Action类关联。在`struts.xml`中,你可以使用`<validate>`标签来指定一个Action对应的校验文件。 2. **校验文件**: - 校验规则通常存储在`.validate.xml`...
配置校验是通过XML配置文件(通常是`struts.xml`)进行的。这种方式允许你声明式地定义校验规则,而无需修改Action类的代码。在配置文件中,你可以指定校验的字段、校验规则以及错误消息。 5. **示例代码**: 在`...