规则文件的书写风格总得来说,XWork发布了两种类型的验证器,包括我们自定义的。

Plain Validators / Non-Field validators

FieldValidators

平滑的验证器(比如表达式验证器) 不绑定于某个特定的属性。当我们定义平滑的验证器时,我们不需要指定属性名。

属性验证器(比如邮箱验证器)是基于某个特定属性的,它们需要在*-validation.xml指定一个fieldname属性。有两种等价的方式XML语法来定义属性验证器。

Non-Field Validator Vs Field-Validator

在-validation.xml文件中,我们有两种方式来定义验证器:

1 <validator>

2 <field-validator>

记住以下语法 :

非属性验证器:我们可以在<validator>元素中定义两种验证器,不管是平滑的还是属性验证器。

<validator type="expression>

<param name="expression">foo gt bar</param>

<message>foo must be great than bar.</message>

</validator>

<validator type="required">

<param name="fieldName">bar</param>

<message>You must enter a value for bar.</message>

</validator>

属性验证器: <field-validator>元素除了继承了 <field> 元素的fieldName属性以外,基本上跟<validator>元素是一样的。定义 在<field-validator>中的属性验证器会自动从父元素<field>的fieldName属性获得fieldName属性值。这样做的原因是方便的将一些验证器进行分组,即可以在一个<field>元素中定义多个<field-validator>元素,这些属性验证器都将验证该属性。如果不这样做的话,在每个单独的<validator>元素中我们都要指定fieldName 属性。

注意:

通常在<field>元素中定义属性验证器比在<validator>定义并指定属性名的方式要好,因为这种方式清楚明了。

使用field-validator定义一个属性验证器:

[html]

<field name="email_address">

<field-validator type="required">

<message>You cannot leave the email address field empty.</message>

</field-validator>

<field-validator type="email">

<message>The email address you entered is not valid.</message>

</field-validator>

</field>

下面两种方式是等价的:

<field name="email_address">

<field-validator type="required">

<message>You cannot leave the email address field empty.</message>

</field-validator>

<field-validator type="email">

<message>The email address you entered is not valid.</message>

</field-validator>

</field>

<validator type="required">

<param name="fieldName">email_address</param>

<message>You cannot leave the email address field empty.</message>

</validator>

<validator type="email">

<param name="fieldName">email_address</param>

<message>The email address you entered is not valid.</message>

</validator>

大家可以自己选择。

转载于:https://blog.51cto.com/lailjiaaie/1098364

java程序中验证框架四规则(初级知识)相关推荐

  1. java程序中集合框架有哪些

    作者:代码界的小白 链接:Java中集合在面试中的高频考点_技术交流_牛客网 来源:牛客网 本章节主要分享一些Java中的集合在面试中常问的高频问题,这里给出的是相对比较简略的答案,不过针对面试的回答 ...

  2. 本地方法(JNI)——从java 程序中调用C函数

    [0]README 1) 本文部分文字描述 转自 core java volume 2 , 旨在理解 本地方法--从java 程序中调用C函数 的基础知识 : 2) for source code, ...

  3. [渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:MVC程序中实体框架的连接恢复和命令拦截...

    这是微软官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译,这里是第四篇:MVC程序中实体框架的连接恢复和 ...

  4. java上传一段语音_在java程序中加入语音功能,例如给段字符串“A101”,就能发出声音,请大家帮帮忙,谢谢...

    展开全部 为应62616964757a686964616fe59b9ee7ad9431333335303530用程序加上语音能力有什么好处呢?粗略地讲,是为了趣味,它适合所有注重趣味的应用,比如游戏. ...

  5. Java实现pdf转tex_使用Free Spire.PDF在Java程序中创建和转换PDF文件

    在这篇文章中,我将举例说明如何创建一个包含标题,段落,图像,编号列表和表格的简单的PDF文件,以及如何使用Free Spire.PDF将PDF转换为其他文件格式. 概述 Free Spire.PDF ...

  6. 在Java程序中创建和转换PDF文件

    点击上方关注 "终端研发部" 设为"星标",和你一起掌握更多数据库知识 作者: Codingqi123 来源: jianshu.com/p/db15232987 ...

  7. Java 程序中的多线程

    在 Java 程序中使用多线程要比在 C 或 C++ 中容易得多,这是因为 Java 编程语言提供了语言级的支持.本文通过简单的编程示例来说明 Java 程序中的多线程是多么直观.读完本文以后,用户应 ...

  8. Java 程序中使用 MongoDB教程

    环境配置 在 Java 程序中如果要使用 MongoDB,你需要确保已经安装了 Java 环境及 MongoDB JDBC 驱动. 本章节实例时候 Mongo 3.x 以上版本. 你可以参考本站的Ja ...

  9. c ibatis mysql实例_[Java教程]java程序中的ibatis连接mySql的基本实例

    [Java教程]java程序中的ibatis连接mySql的基本实例 0 2015-03-16 00:01:32 属性文件:SqlMap.properties1 driver=com.mysql.jd ...

  10. java用redis缓存的步骤_详解在Java程序中运用Redis缓存对象的方法|chu

    这段时间一直有人问如何在Redis中缓存Java中的List 集合数据,其实很简单,常用的方式有两种: 1. 利用序列化,把对象序列化成二进制格式,Redis 提供了 相关API方法存储二进制,取数据 ...

最新文章

  1. a-awk外部变量传入,内部变量传出,同时过滤空格及其他字符
  2. 让我们讨论一下变量,以及为什么要在JavaScript中使用它们。
  3. ubuntu16.04:成功解决ubuntu16.04 忘记root密码
  4. Leetcode 40组合总数(回溯)Ⅱ41缺失的第一个正数42接雨水
  5. Class.forName有什么作用
  6. bzoj1878: [SDOI2009]HH的项链
  7. 侧输出流简单应用-打印的完整流程
  8. VSFTPD 服务器 3秒钟搭建
  9. ProgressBar--进度条
  10. 虚拟机VMware的Ubuntu下安装tensorflow详解
  11. 计算机视觉(三)线性分类器
  12. html网页直播实时聊天,一分钟实现网页多人聊天室【Socket.IO】
  13. Visual Studio更换默认浏览器
  14. 300多条MTK工作笔记为你的工作节省一半时间
  15. IDEA 代码分屏编辑对比: split vertically
  16. 安科瑞无线测温装置,多点温度在线测温装置
  17. mysql 订单表与商品表_数据库——订单表中有不同类型的商品,表的设计
  18. 计算机菜单的作用是,菜单
  19. iOS通讯录复制的手机号码字符串多了奇怪的unicode码\u0000202d-\u0000202c
  20. linux 端口耗尽,短连接以致端口耗尽

热门文章

  1. paip.数据库全文检索 attilax总结
  2. PAIP.DB4O与SQL配合使用在海量数据下.txt
  3. Julia: wsl ubuntu下安装、vscode及配置profile错误补正
  4. 达观数据:Tornado原理浅析及应用场景探讨
  5. 打造基金经理能力圈 基金公司探索投资风格细化
  6. Kafka从上手到实践 - Kafka集群:配置Broker | 凌云时刻
  7. 张子轩周剑:3月21日阿里云北京峰会企业IT治理大神
  8. 计算机房选址,数据中心机房如何选址 数据中心机房如何日常维护
  9. java 向后台传两个json数据类型_前台向后台传递JSON字符串,处理JSON字符串类型的方法...
  10. 【图像去噪】基于matlab分裂Bregman算法图像去噪【含Matlab源码 1644期】