使用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也是一样的
分享到:
相关推荐
struts2官方例子7-表单验证 xml形式的验证,主要是在相应的action类旁,新建一个对应的xml文件,进行验证
struts2基于xml验证(最常用的三种类型String、Date、int验证).doc
Struts2验证框架的配置及validation.xml常用的验证规则
Struts2 验证框架 validation.xml 常用的验证规则
传智播客的 struts2验证(xml)课件.ppt 主要讲解 xml的相关配置,数据校验的知识,不错的参考资料。
列举了多种格式验证方法。如日期、字符、数字等
struts.xml的错误解决办法,解决错误
主要介绍了struts2 validation.xml 验证规则代码解析,具有一定借鉴价值,需要的朋友可以参考下
struts2+json+jquery局部刷新实现注册验证,包括前台的用户名、密码、手机、身份证、邮箱(包含发邮件技术)、邮箱验证码、验证码的验证,用到的是json+jquery,后台则是用struts2+java类
struts2验证框架 在包下创建Action.validation.xml启动框架验证
1. struts2框架的引入 1)把struts2的相关jar包导入到项目中去 2)把struts2框架的配置文件struts.xml复制粘贴...话可以在struts2框架的核心jar包中找到.jar中有验证 struts.xml的dtd文件,在dtd文件中有这个声明的写法
使用Struts做登录验证的步骤: 1 搭建环境: A 导包 B 建配置文件 struts-config.xml C 修改web.xml 2 建一个 ActionForm 3 建一个 Action 4 页面上面的事情
使用struts2验证form表单信息_xml格式
struts2+spring整合登陆验证经典完整案例!期余JAR文件在struts2+spring整合登陆验证经典完整案例!(JAR)这个中,免积分下载! 部署Web应用请按如下步骤进行: 1. 进入reg_login路径下,将mysql.sql脚本中的语句...
在本课程讲解的时候主要结合Struts 2的核心优点以及从代码比较上讲解了和Struts 1的区别,随后又包含了Struts 2中提供的各个优秀技术,如转换器、验证框架等,而本书为了方便读者的开发,特别将Struts 2结合spring和...
(2).struts.xml文件 4 (3).struts.properties(参default.properties) 4 (4)struts-default.xml 4 (5)其它配置文件 4 4.让MyEclipse提示xml信息 4 5.如何使用alt+/提示 4 6.实例 4 7.开启struts2自带的...
10.1.2 Struts 2工作流中的验证框架 219 10.2 将动作关联到验证框架 222 10.2.1 使用ActionClass-validations.xml声明验证元数据 223 10.2.2 研究内建的验证器 226 10.3 编写自定义验证器 227 10.3.1 检查密码强度的...
Struts2提供了一些基于XWork Validation Framework的内建验证程序,它们大大简化了输入验证工作。 使用这些验证程序不需要编程,程序员只需要在一个XML文件里对验证程序应该如何工作做出声明就行了。需要声明的内容...
struts2学习教程包括:第一个Struts2程序,处理一个form多个submit,struts.xml常用配置解析,使用validate方法验证数据,使用Validation框架验证数据,在Action类中获得HttpServletResponse对象的四种方法,上传...
Struts2验证应该包括验证器(需要xml配置)和Action中的validate()验证方法两种。后者很简单,只需要把 验证条件加进去就可以啦!