J2EE 7中Bean Validation1.1的新特性
J2EE 7中的Bean Validation 1.1正式发布很久了了。与此同时,Jave EE 7平台的最终标准也一定制定了。下面小编为大家整理了关于J2EE 7中Bean Validation1.1的新特性,希望能为你提供帮助:
现在,是时候去了解下我们能从这次BeanValidation的版本更新中得到什么新的特性以及了解其参考实现Hibernate Validator 5的新功能。在本文中,将简要向开发者介绍J2EE7中Bean Validation 1.1新特性――表达式语言。首先要了解下Bean Validation标准。所谓的Bean Validation,就是JavaEE 提出的使用注解的方式对Java Bean 进行约束验证的规范。目前最新的BeanValidation 1.1标准请参考()。在最新的1.1规范中,引入了类似JSP中的表达式语言(EL,标准请参考)。要知道,EL其实的应用场合是很广的,特别是一些很好的用法如Lambda表达式等都有很大用处,而且能用在J2SE或J2EE中。在Bean Validation 1.1中,开发者可以充分利用EL表达式中的强大的功能去做一些条件的判断以及实现一些自定义输出。
使用EL表达式限制值作为例子,首先来看下其内置的@DecimalMax约束。在BeanValidation 1.1中,该约束增加了一个新的标志位名为inclusiv,它表示约束中是否包含或不包含给定的最大值。根据该标志位,约束限制的信息或者是小于给定的值{value}或者是等于给定的值{value}。这样的用法BeanValidation 1.0中是比较难实现的,但在1.1中缺很容易实现,下面是一个典型的例子:
must be less than ${inclusive == true ? 'or equal to '> : ''}{value}"
这里,假设 value赋值为50的话,则假如@DecimalMax 中设置了inclusive属性为true,则输出:
must be less than or equal to 50;如果设置为false,则输出must be less than 50。
validatedValue特性
在Bean validation 1.1中,还可以在bean的约束属性中,设计当某个bean违反了某个约束规则后,显示所违反规则的真实的值,如下面的例子:
@ValidCustomer( message = "Not a valid customer: ${ame()}" ) public class Customer { //... public String getName() { return name; } }
在这个例子中,当这个bean违反了@ValidCustomer这个约束后,则会显示出:“Not a valid customer: Bob”这样的提示信息。也就是说,通过使用注解${ame(),获得了违反规定的输入的值Bob,这里是通过反射机制通过getName()方法获得的。新的格式化功能 最后,在Bean validation 1.1中,在格式化显示字符串方面提供了工具助手类formatter,其使用格式为:format(String format, Object... args),这个跟Java语言中的at(String format, )其实是差不多的。如果用在格式化数字的时候是相当方便的,如下例子所示:
public class Order { @DecimalMin(value="20.00", message="Order value too low: € ${at('%08.2f', validatedValue )}") private final BigDecimal value; //... }
如果输入的数字小于20,则会输出:Order value too low: € 00017.89,这里是取了两位小数。
EL和Classpath
为了充分利用EL表达式,必须在classpath中放置EL的实现jar包。当在如WildFly等JavaEE容器中运行的`时候通常会遇到点问题,开发者也需要在普通的JavaSE环境中增加EL的实现jar包。两种目前能和HibernateValidator工作良好的实现是EL的参考实现和JUEL。而对于使用Tomcat的用户,HiberateValidator至少需要的是EL 2.2标准,这个在Tomcat7中已经实现了。而Tomcat 6则只能和EL2.1的实现搭配使用。这个是否意味着Tomcat 6就不能享用EL的新功能?幸运的是,只需要额外的一些准备工作,可以通过查看HibernateValidator FAQ去学习如何更新Tomcat的EL类库。亲自动手如果要体验最新的Bean validation 1.1的特性,可以从这里链接获得最新的Hibernate Validator。如果使用的是Maven,Gradle等构建工具,则可以使用l的坐标进行查找。
相關文章
-
Food and place of interest in Beijing国中英语作文
工作总结是为了我们的工作能够做得更好,我们的能力有所提高而要求撰写的,这个工作总结要怎么去写呢?《财务人员个人培训总结三篇》是小编为大家准备的,希望对大家有帮助。财务人员个人培训总结培训虽短,但给我的学习轨迹 -
英语作文International Day of Peace Vigil
The goal of the Inteational Day of Peace Vigil is: "To encourage the observation of a worldwide, grassroots 24-hour vigil for peace and nonviolence on the Inteational Day of Peace, Sunday, 21 Septembe -
英语阅读:African Union Leaders Talk Mali, Chinese Investmen
African leaders met in Ethiopia during the weekend to celebrate the 50th anniversary of their continental alliance and discuss issues such as Chinese investment on the continent as well as the fight a -
win7系统重装win10提示not a valid image file
甲乙丙三方一致同意,根据《中华人民共和国公司法》、《中华人民共和国合同法》和其他有关法律法规的规定,订立本协议。第1条 技术增资1.1 乙方以电池材料相关技术作为出资:(a) 委托评估公司进行评估的《天然鳞片高纯石墨 -
八年级英语下册Unit 6 An old man tried to move a Mountain period one说课稿
尊敬各位老师,各位同学,大家好。今天我说课的内容是人教版新目标八年级英语下册Unit 6 An old man tried to move a Mountain period one,我的说课包括:一、 说教材(一)教材的地位的作用本单元讨论的主题是“传说和故事”,其 -
关于Unit 1 The Dragon Boat Festival教学案
一、选择并抄写单词1. We have Dragon Boat _____ (competition, races) on the 5t h day of the 5th lunar month.2. Kitty likes sweet dumplings, but she ______ (hates, hate) salty ones.3. Chinese people ___ -
Diaspora Finance Powers Global Development美文欣赏
Diaspora Finance Powers Global DevelopmentLuis Lopez-Ramirez, a 30-year old Honduran immigrant, makes pizza.He has worked two jobs over 16 hours each day.He carefully saves his money and rents a small -
A Lifeguard at Johns Beach Saved a Drowning Child,A Lifeguar英语作文
在生活、工作和学习中,大家一定都接触过作文吧,作文是人们把记忆中所存储的有关知识、经验和思想用书面形式表达出来的记叙方式。为了让您在写作文时更加简单方便,下面是小编收集整理的'A Lifeguard at Johns Beach Sav -
《Unit 2 Does Daming like bananas?》说课稿
一、说教材本单元主要是一般疑问句的第三人称单数的问法,所学习的单词也是围绕此展开的。所以如何掌握句型是本课的重点和难点,但字母的书写也是本课需要掌握的。我想利用上节课学的句子与本课的句型进行对比来突破 -
最新《Fate/Stay Night Unlimited Blade Works》经典名句
1、他人比自己更重要的这种想法,想让所有人都幸福的愿望,只不过空想中的童话罢了。如果你必须抱着这种东西才能活下去的话,就抱着它溺死吧 ----Archer2、名为幸福的位置是有限的,必须要把那些得不到幸福的人及时抹除,这就