`

《研磨struts2》第十章 验证框架 之 10.3 验证器类型

 
阅读更多

10.3  验证器类型

可以把验证器类型分为两种:字段验证器和动作验证器。其中,字段验证器就像前面演示的那样,只验证提交的表单内的单个字段;而动作验证器一般验证提交的表单内的多个字段的关系,比如,录入产品信息的时候,产品的进价不能高于售价。

无论是哪种验证器,都需要考虑以下几个问题:

  • 验证谁?
  • 使用什么条件验证?
  • 不满足条件显示什么结果?
  • 不满足验证条件时显示的结果出现在页面的什么位置?

10.3.1字段验证器

字段验证器用来验证提交的表单内的单个字段,如同前面的示例,在验证文件里:

 

java代码:
  1. <validators>  
  2.     <field name="user.age">  
  3.         <field-validator type="int">  
  4.             <param name="min">18</param>  
  5.             <message>年龄必须在18岁以上,您输入的是${user.age}</message>  
  6.         </field-validator>  
  7.     </field>  
  8. </validators>  
  • <validators>元素作为整个验证文件的根元素。
  • <validators>元素的<field>子元素就是字段验证器,<field>元素的name属性就是这个字段验证器要验证的哪个字段。
  • 一个<field>元素可以有多个<field-validator>元素。
  • 每一个<field-validator>元素是对这个字段的一种验证条件,它的type属性就是具体的验证器,在这里引用了内置的int验证器。
  • 还可以给<field-validator>元素添加<param>子元素来设置验证条件的参数,添加<message>子元素来设置验证错误时返回的信息。在<message>元素中写出的文本将直接作为错误信息返回,如果<message>元素存在key属性,它将引用国际化信息。

除了以上的这种写法,还有另外一种注册的方式,虽然写出来的xml配置不同,但是所需要的参数,以及运行时所起的作用都和以上的写法一模一样:

 

java代码:
  1. <validators>  
  2. <validator type="int">  
  3.         <param name="fieldName">user.age</param>  
  4.         <param name="min">18</param>  
  5.         <message>年龄必须在18岁以上,您输入的是${user.age}</message>  
  6.     </validator>  
  7. </validators>  
  • <validators>元素仍然作为整个验证文件的根元素。
  • <validators>元素的<validator>子元素就是字段验证器,<validator>元素的type属性就是这个字段验证器要使用的验证器。
  • <validator>元素作为字段验证器使用时,一定要出现一个name属性为fieldName的<param>子元素,用以指明验证哪个字段。
  • <validator>元素的<message>子元素用来设置验证错误时返回的信息。在<message>元素中写出的文本将直接作为错误信息返回,如果<message>元素存在key属性,它将引用国际化信息。

无论是哪种写法,如果不满足验证的条件,它将显示在对应的文本框的上边。

10.3.2动作验证器

与字段验证器只验证单个字段相比,动作验证器应用于整个动作(Action),一般用于验证提交的表单内的多个字段的关系,当然也可以验证单个字段。

为了示例,假定要求输入的帐号也为数字,并要求输入的age值要大于帐号的值。那么在验证文件里,可以按照如下写法,示例代码如下:

 

java代码:
  1. <validator type="expression">  
  2.     <param name="expression"><![CDATA[user.age>=user.account]]></param>  
  3.     <message>年龄必须在${user.account}岁以上,您输入的是${user.age}</message>  
  4. </validator>  
  • <validators>元素作为整个验证文件的根元素。
  • <validators>元素的< validator>子元素就是动作验证器。其type属性为expression,引用了内置的表达式验证器,这个验证器需要一个name属性为expression的<param>子元素为其指定表达式。
  • <validator>元素的<message>子元素用来设置验证错误时返回的信息。在<message>元素中写出的文本将直接作为错误信息返回,如果<message>元素存在key属性,它将引用国际化信息。

注意:上面出现的<![CDATA[]]>是xml的通用语法,里面的内容不需要对特殊字符进行转义。

对于动作验证器,它返回的错误信息并不会直接显示在<s:textfield name=”user.age”/>对应的文本框上方,需要使用<s:actionerror/>标签去引用。如:

 

java代码:
  1. 用户注册  
  2. <hr>  
  3. <s:actionerror/>  
  4. <hr>  
  5. <s:form action="/registerAction.action">  
  6.     <s:textfield name="user.account" label="账号"/>  
  7.     <s:textfield name="user.name" label="姓名"/>  
  8.     <s:textfield name="user.age" label="年龄"/>  
  9.     <s:submit value="注册"/>  
  10. </s:form>  

这样,如果动作验证器条件不满足的话,错误信息会出现在<s:actionerror/>的位置上。

图10.5 使用动作验证器

 

私塾在线网站原创《研磨struts2》系列

转自请注明出处:【http://sishuok.com/forum/blogPost/list/0/4092.html

欢迎访问http://sishuok.com获取更多内容

9
7
分享到:
评论

相关推荐

    研磨Struts2配书视频对应的演示源代码

    2. **拦截器(Interceptors)**:Struts2的核心之一是其拦截器机制,它们在Action执行前后执行一系列预定义或自定义的操作。这些拦截器可以用于登录验证、日志记录、性能监控等。源代码中可能包含了不同类型的拦截器...

    研磨Struts2

    ### 知识点一:Struts2入门(MVC HelloWorld) #### 1.1 Struts2简介 ...以上就是关于“研磨Struts2”的主要知识点梳理,通过深入学习这些内容,开发者可以更好地掌握Struts2框架的核心技术和实践技巧。

    研磨struts2 高清版

    由于文件较大,我把这个文档切割为2部分,这是第一部分,请下载完第一部分后一定要下载第二部分,否则不能阅读。

    《研磨Struts 2》PDF版本下载.txt

    为了更好地理解和概括这份资料所涉及的知识点,我们先来了解一下Struts 2框架及其重要性,然后深入探讨《研磨Struts 2》这本书的主要内容。 ### Struts 2框架简介 Struts 2是Apache Struts的一个版本,它是用于...

    研磨Struts2配书视频对应的PPT

    《研磨Struts2》这本书是专门针对Struts2框架的学习指南,通过深入浅出的方式讲解了Struts2的核心概念和技术。其配套的PPT和视频旨在帮助读者更直观地理解书中的理论知识,并将其付诸实践。 在研读《研磨Struts2》...

    研磨Struts2 高清完整版.part2

    研磨Struts2 高清完整版,请和第一部分一起下载啊

    研磨struts

    Struts2是一个强大的Java web应用程序框架,用于构建...通过《研磨Struts2》,读者可以系统地学习Struts2框架的各个方面,从而熟练掌握这个强大的Web开发工具,提高开发效率,构建出结构清晰、易于维护的Java Web应用。

    研磨Struts2_12859679_高清完整版.part2.rar

    研磨Struts2_12859679_高清完整版

    研磨Struts2-高清-完整目录-2011年10月

    研磨Struts2-高清-完整目录-2011年10月,分享给所有需要的人

    Java工程师三大框架面试题.pdf

    Java工程师三大框架面试题.pdf

    第十章多功能敏感陶瓷.ppt

    【第十章多功能敏感陶瓷】 多功能敏感陶瓷是一种集多种传感功能于一体的新型材料,旨在满足现代科技发展和实际应用的需求。从20世纪80年代初开始,国内外科研人员开始研究这类陶瓷,以期将不同功能的传感器集成在一...

    2017_2018学年九年级化学下册第十章第三节中档难度提升题含解析北京课改版

    例如,NH4Cl与KCl可通过观察外观区别,而(NH4)2SO4与K2SO4可通过加熟石灰研磨后闻气味来区分。 11. 鉴别化肥的实用方法:如(NH4)2SO4与KCl可通过加熟石灰粉末研磨后闻气味,前者会产生氨气,后者无明显气味。 12. ...

    研磨设计模式(完整带书签).part2.pdf

    本电子书一共两个压缩文档,本文件为part2. 《研磨设计模式》完整覆盖GoF讲述的23个设计模式并加以细细研磨。初级内容从基本讲起,包括每个模式的定义、功能、思路、结构、基本实现、运行调用顺序、基本应用示例等,...

    研磨设计模式.part2

    研磨设计模式.part2 一定要下载5部分

Global site tag (gtag.js) - Google Analytics