使用xml文件完成属性的验证
一共有六个字段(也就是表单的六个属性).分别是 username ,password ,repassword ,age,birthday,graduation ..要求是 每个属性不能为空,前面三个必须在6到10个字符之间.年龄在1到150之间.birthday 为2001-01-01到2003-12-31之间,graduation在2005-01-01与2007-12-31之间..这些就是我们这节要实现的需求..
当然,还有其他需求,比如password与repassword必须相等,还有bithday必须在graduation之前.
配置xml文件.放在action 对应的包里面 包名是ActionName-validation.xml
这里的规则是 "-validation.xml"部分固定...前面加上action类的类名...
比如这里就是RegisterAction-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">
<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 >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 blank!</message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">10</param>
<message>password should be between ${minLength} and ${maxLength}</message>//注意这里可以用${}
</field-validator>
</field>
<field >
<field-validator type="requiredstring">
<message>repassword should not be blank!</message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">10</param>
<message>repassword should be between ${minLength} and ${maxLength}</message>
</field-validator>
</field>
<field name="age">
<field-validator type="required">//注意,这里不是requiredstring.因为age不是字符串类型..其他类型都用required
<message>age should not be blank!</message>
</field-validator>
<field-validator type="int">//同理,这里用 int
<param name="min">1</param>
<param name="max">150</param>
<message>age should be between ${min} and ${max}</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">2001-01-01</param>
<param name="max">2003-12-31</param>
<message>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-01-01</param>
<param name="max">2007-12-31</param>
<message>graduation should be between ${min} and ${max}</message>
</field-validator>
</field>
</validators>
注意,显示错误信息可以有addFieldError方法,还有addActionError方法.我们之前说的都是前面那个...这两个方法都会返回一个input 消息提示验证失败.区别在于,在<s:form>标签内只能显示addFieldError的错误信息.也就是说,如果你的validate方法里面是写addActionError 那么,只使用<s:form>将不显示错误信息.这个时候,我们就必须在JSP页面里面添加 <s:actionerror>标签..这样就会显示addActionError 里面的错误信息..
配置文件的方法来验证返回的是addFieldError方法.也就是说,你可以在页面上加 <s:fielderror>标签,或者使用<s:form>标签.
上面说的xml验证叫做属性验证..他用<field>标签对应需要的验证的属性..还有一种是非属性验证..他对应的是验证的方式.比如,我要验证<stringlength>.然后再子标签里说明需要验证哪几个属性.这种办法和属性验证是一样的.不多说了.估计我是不想用了.因为对于业务逻辑来说不清晰.
还有一点.和之前实现validate方法是一样的,我这个xml文件是对于那个action来说是全局的.也就是说我调用那个action里的每一个方法都需要经过这个验证.很明显,这样也是不合理的.所以,struts里面你可以定义一个局部的xml文件来验证,你可以定义这样一个文件
RegisterAction-test-validation.xml 其中.test表示,只有在调用RegisterAction里的test方法的时候才会调用这个xml文件进行验证..这个xml文件里面的写法和上面的一样.不多说了
如果全局验证的和局部验证的都存在.那么两个都执行..顺序是先全局的,后局部的.和之前的validate也是一样的
分享到:
相关推荐
XML验证的优点在于其灵活性和可读性。开发者可以在Action类旁创建一个与Action类同名的.xml文件,比如Action类名为`UserAction.java`,那么对应的验证文件就是`UserAction-validation.xml`。在这个文件中,我们可以...
在探讨Struts2框架中的XML验证机制时,我们聚焦于三种最常见的数据类型验证:String、Date、int。这些验证在Web应用开发中至关重要,确保了数据的完整性和正确性,从而提高了应用程序的健壮性和用户体验。 ### 一、...
2. **Interceptor拦截器**: 拦截器是Struts2的一大特色,它可以插入到Action调用的流程中,实现如权限验证、日志记录等功能。 3. **Plug-in插件**: Struts2支持插件扩展,可以方便地添加新的功能或修改已有行为。 4....
在XML验证中,会在struts-plugin.xml或struts.xml中配置Validator的引用,然后在单独的validation.xml文件中定义每个Action的验证规则。例如,对于用户名和密码,可以设置必填、长度限制等规则。 使用注解验证则更...
在Struts2框架中实现Ajax功能,可以让用户在注册时实时验证用户名是否已经存在,从而提高用户体验。 这篇文档“struts与ajax.docx”可能包含了如何将Struts2和Ajax结合使用的详细步骤。通常,这个过程会涉及以下几...
本文将详细介绍Struts2验证框架的配置方法以及validation.xml文件中常用的验证规则。 ### 验证框架的配置 在Struts2中,验证主要通过在Action类的关联配置文件validation.xml中定义规则来实现。该文件通常与Action...
可以使用Struts2的Validator框架,通过定义验证规则文件(如login-validation.xml)来自动执行验证。 6. **会话管理**:如果验证成功,通常会将用户信息存入Session,以便后续页面能识别用户状态。例如,设置`...
Struts2是一个流行的Java web开发框架,其在处理用户表单数据时提供了强大的验证功能,确保输入的数据符合预期的格式和规则。本文将深入探讨Struts2的表单验证机制。 首先,Struts2的输入验证分为两种方式:手动...
了解Struts2的XML DTD有助于我们正确编写和验证Struts2配置文件。 标题"struts2 XML dtd"指的是Struts2框架中使用的XML配置文件所遵循的DTD文件。这些DTD文件定义了Struts2配置文件的结构和语法规则,确保配置信息...
`struts-config.xml`是Struts框架的核心配置文件,它定义了应用的各个组件及其交互方式。下面将详细介绍这个配置文件的主要元素和子元素。 ### 主要元素 1. **`<data-sources>`**: 这个元素用于配置数据源,通常...
在Struts2框架中,`validation.xml`是用于定义数据校验规则的重要配置文件,它允许开发者对Action类中的字段进行各种格式的验证,确保数据的完整性和正确性。通过`validation.xml`,我们可以实现对日期、字符、数字...
这可以通过在Action类中实现这些验证逻辑来完成,或者使用Struts2提供的验证框架,通过XML或者注解定义验证规则。 登录功能相对简单,主要是比较用户输入的用户名和密码与数据库中的记录是否匹配。这里,Action类...
Action级别的验证通常涉及在Action类中编写方法来检查用户输入,而ValidatorForm级别的验证则利用Struts2的Validator组件,基于XML配置文件对用户输入进行验证。 在Struts2中,表单验证信息的显示位置可以通过...
在实际应用中,Struts2的表单验证结合数据库操作,可以构建出安全且用户体验良好的注册系统。通过合理的错误处理和反馈,用户能够快速理解并修正输入的问题,同时,通过服务器端的验证,确保了即使客户端验证被绕过...
在本项目中,“Struts2实现的注册”指的是使用Struts2框架来构建一个用户注册功能。接下来,我们将深入探讨如何在Myeclipse集成开发环境中,结合MySQL数据库,实现这一功能。 首先,你需要在Myeclipse中创建一个新...
在本实例中,我们将探讨如何利用Struts1.2实现动态表单注册,并结合验证框架来确保用户输入的有效性。 首先,我们需要了解Struts1.2的核心组成部分。Action类是处理用户请求的核心,它接收表单数据并进行相应的业务...
Struts2作为一款强大的MVC框架,其核心配置文件`struts.xml`在应用程序中扮演着至关重要的角色。本文将深入解析`struts.xml`中的Action配置,帮助开发者更好地理解和运用这一关键组件。 首先,Action配置是Struts2...
Validator插件允许开发者定义XML验证规则文件,这些文件包含了字段名、验证规则和错误消息。当用户提交表单时,框架会自动调用这些规则进行验证。 验证规则可以包括但不限于以下几种: - 必填字段检查 - 长度...
`validation.xml`文件是Struts2中进行数据验证的核心配置文件,用于定义具体的验证规则。该文件通常与特定的Action类关联,并且需要遵循一定的命名规则: - **文件命名规则**:`<ActionClassName>-validation.xml`...
Struts2的验证框架主要有两种方式:XML配置和注解配置。本篇重点介绍注解方式。注解方法允许开发者在Action类的属性上直接定义验证规则,减少了XML配置文件的繁琐工作。 ### 3. 注解基础 - `@Validated`:这个注解...