[原创]java WEB学习笔记71:Struts2 学习之路-- struts2常见的内建验证程序及注意点,短路验证,非字段验证,错误消息的重用

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用

内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系。

本人互联网技术爱好者,互联网技术发烧友

微博:伊直都在0221

QQ:951226918

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1.Struts2 内建的验证程序:参考文档 ../struts-2.3.15.3-all/struts-2.3.15.3/docs/WW/docs/conversion-validator.html

  字段验证用:<s:fielderror  fieldName=""></s:fielderror> 显示错误消息

 1 <validators>
 2     <validator name="required" class="com.opensymphony.xwork2.validator.validators.RequiredFieldValidator"/>
 3     <validator name="requiredstring" class="com.opensymphony.xwork2.validator.validators.RequiredStringValidator"/>
 4     <validator name="int" class="com.opensymphony.xwork2.validator.validators.IntRangeFieldValidator"/>
 5     <validator name="long" class="com.opensymphony.xwork2.validator.validators.LongRangeFieldValidator"/>
 6     <validator name="short" class="com.opensymphony.xwork2.validator.validators.ShortRangeFieldValidator"/>
 7     <validator name="double" class="com.opensymphony.xwork2.validator.validators.DoubleRangeFieldValidator"/>
 8     <validator name="date" class="com.opensymphony.xwork2.validator.validators.DateRangeFieldValidator"/>
 9     <validator name="expression" class="com.opensymphony.xwork2.validator.validators.ExpressionValidator"/>
10     <validator name="fieldexpression" class="com.opensymphony.xwork2.validator.validators.FieldExpressionValidator"/>
11     <validator name="email" class="com.opensymphony.xwork2.validator.validators.EmailValidator"/>
12     <validator name="url" class="com.opensymphony.xwork2.validator.validators.URLValidator"/>
13     <validator name="visitor" class="com.opensymphony.xwork2.validator.validators.VisitorFieldValidator"/>
14     <validator name="conversion" class="com.opensymphony.xwork2.validator.validators.ConversionErrorFieldValidator"/>
15     <validator name="stringlength" class="com.opensymphony.xwork2.validator.validators.StringLengthFieldValidator"/>
16     <validator name="regex" class="com.opensymphony.xwork2.validator.validators.RegexFieldValidator"/>
17     <validator name="conditionalvisitor" class="com.opensymphony.xwork2.validator.validators.ConditionalVisitorFieldValidator"/>
18 </validators>

  1)required: 确保某给定字段的值不是空值 null    “”

  2)requiredstring: 确保某给定字段的值既不是空值 null, 也不是空白.  

     trim 参数. 默认为 true, 表示 struts 在验证该字段值之前先剔除前后空格.

  3)stringlength: 验证一个非空的字段值是不是有足够的长度.

     minLength: 相关字段的最小长度. 若没有给出这个参数, 该字段将没有最小长度限制

     maxLength:相关字段的最大长度. 若没有给出这个参数, 该字段将没有最大长度限制

     trim: 在验证之前是否去除前后空格

   4)date: 确保某给定日期字段的值落在一个给定的范围内

     max:相关字段的最大值. 若没给出这个参数, 该字段将没有最大值限制

       min:相关字段的最小值. 若没给出这个参数, 该字段将没有最小值限制

    5) email: 检查给定 String 值是否是一个合法的 email

    6) url: 检查给定 String 值是否是一个合法的 url

    7) regex: 检查某给定字段的值是否与一个给定的正则表达式模式相匹配.

     expresssion*: 用来匹配的正则表达式

     caseSensitive: 是否区分字母的大小写. 默认为 true

     trim: 是否去除前后空格. 默认为 true

    8)int: 检查给定整数字段值是否在某一个范围内

     min: 相关字段的最小值. 若没给出这个参数, 该字段将没有最小值限制

     max: 相关字段的最大值. 若没给出这个参数, 该字段将没有最大值限制

   9) conversion: 检查对给定 Action 属性进行的类型转换是否会导致一个转换错误. 该验证程序还可以在默认的类型转换消息的基础上添加一条自定义的消息

     10)expression 和 fieldexpression: 用来验证给定字段是否满足一个 OGNL 表达式.

        前者是一个非字段验证程序, 后者是一个字段验证程序.

        前者在验证失败时将生成一个 action 错误, 而后者在验证失败时会生成一个字段错误

        expression*: 用来进行验证的 OGNL 表达式

2.短路验证

  1) <validator …/> 元素和 <field-validator …/> 元素可以指定一个可选的 short-circuit 属性,该属性指定该验证器是否是短验证器,默认值为 false

  2) 对同一个字段内的多个验证器,如果一个短路验证器验证失败,其他验证器不会继续校验。

 1 <!DOCTYPE validators PUBLIC
 2         "-//Apache Struts//XWork Validator 1.0.2//EN"
 3         "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">
 4
 5 <validators>
 6
 7     <!-- 针对于 age 属性进行验证 。基于字段的验证-->
 8      <field name="age">
 9
10      <!-- 设置短路验证,若当前的验证没有通过,则不再进行下面的验证 -->
11          <field-validator type="conversion" short-circuit="true">
12              <message>Conversion Error Occurred</message>
13          </field-validator>
14          <field-validator type="int">
15              <param name="min">20</param>
16              <param name="max">50</param>
17              <message>Age needs to be between ${min} and ${max}</message>
18          </field-validator>
19      </field>
20 </validators>

  

3.非字段验证:不针对某一个字段的验证

1 <validator type="expression">
2          <param name="expression"><![CDATA[password==password2]]></param>
3          <message>password is not equals to password2</message>
4 </validator>

  显示非字段验证的错误消息,使用s:actionerror 标签:

4.错误消息的重用:不同字段使用同样的验证规则,而且使用同样的响应消息。

  在国际化文件中

    error.int=${getTest(fieldName)}  needs to be ${min} and ${max}

  age=\u5E74\u9F84

  count=\u6570\u91CF

5.自定义验证器

  1) 自定义验证器必须实现 Validator 接口

  2) ValidatorSupport 和 FieldValidatorSupport 实现了 Validator 接口

     - 若需要普通的验证程序, 可以继承 ValidatorSupport

    - 若需要字段验证程序, 可以继承 FieldValidatorSupport

     - 若验证程序需要接受一个输入参数, 需要为这个参数增加一个相应的属性

  3)注册验证程序: 自定义验证器需要在类路径里的某个 validators.xml 文件里注册:

    验证框架首先在根目录下找validators.xml文件,没找到validators.xml文件, 验证框架将调用默认的验证设置,即default.xml里面的配置信息.

  

 

 

时间: 2024-08-26 12:03:54

[原创]java WEB学习笔记71:Struts2 学习之路-- struts2常见的内建验证程序及注意点,短路验证,非字段验证,错误消息的重用的相关文章

[原创]java WEB学习笔记75:Struts2 学习之路-- 总结 和 目录

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

[原创]java WEB学习笔记6:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) 使用 paramsPrepareParamsStack 重构代码 ,PrepareInterceptor拦截器,paramsPrepareParamsStack 拦截器栈

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

[原创]java WEB学习笔记95:Hibernate 目录

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

【web开发学习笔记】Struts-Tags学习笔记1 - 通用标签和控制标签

通用标签和控制标签 第一部分:代码 //前端 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030" /> <title>Insert title here</title> </head> <body> 访问属性 <a href="<%=contextP

【web开发学习笔记】ibatis学习总结

ibatis学习总结 ibatis数据库配置文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> <

【web开发学习笔记】Hibernate学习总结

hibernate学习笔记 学习笔记部分: 本部分的学习比较容易,代码比较全,也容易理解,可以说是一些记忆性质的东西. 本人在学习过程中没有自己在做笔记,只是参考了网上找的学习笔记,按照那个笔记学习和复习挺快的. 源码中有一些jar包缺失,我在自学的时候也整理了相关的jar包和软件,已经上传,祝大家学习快乐. 相关资源链接: 相关的数据库连接的资源: http://download.csdn.net/detail/licong_carp/7656601 相关的jar包文件: http://dow

[学习笔记] Sencha Cmd 学习笔记 Sencha Cmd是什么

本文地址: http://blog.csdn.net/sushengmiyan/article/details/38295575 本文作者:sushengmiyan -------------------------------------------------------------资源链接----------------------------------------------------------------------- 翻译来源  Sencha Cmd官方网站: http://w

Accelerated C++学习笔记1—&lt;开始学习C++&gt;

第0章 开始学习C++ 1.每次学习一个新的语言,大家都是从Hello, world!开始 // lesson0_1.cpp : 定义控制台应用程序的入口点. //功能:编译并运行Hello,world //时间:2014.5.7 #include "stdafx.h" #include "iostream" using namespace std; int _tmain(int argc, _TCHAR* argv[]) { std::cout<< &

[Linux] 学习笔记之安装学习环境(sshd, lrzsz)

紧接前一篇,在VMWare安装完Linux,这个时候我们要使用远程工具连接到虚拟机上去了,以前一直使用Putty,后来到新公司之后,推荐使用SecureCRT,使用之后,觉得效果不错,但是每次连接都失败,linux新手伤不起,在网上搜啊搜,终于找到解决办法.   搜索了很多资料之后,发现是由于我未在Linux上安装ssh服务导致无法使用SecureCRT连接. 1. 可以使用ssh localhost对此进行测试,具体使用如下: 2. 使用apt-get或者yum安装ssh服务,具体哪种操作系统