J2EE 7中Bean Validation1.1的新特性
来源:才华咖 本文已影响2.28W人
来源:才华咖 本文已影响2.28W人
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的坐标进行查找。
《Unit 2 Does Daming like bananas?》说课稿
关于Unit 1 The Dragon Boat Festival教学案
JavaScript在Android的WebView中parseInt函数转换不正确
最新《Fate/Stay Night Unlimited Blade Works》经典名句
Advantages of Being a Teacher英语作文
SustainableDevelopment高中英语作文
Diaspora Finance Powers Global Development美文欣赏
A Lifeguard at Johns Beach Saved a Drowning Child,A Lifeguar英语作文
On the Advantages of E-learning英语作文
Module5Unit1CanIhaveanicecream教学设计及反思素材
英语满分作文:Reading-TheBestMeanstoAcquireknowledge
八年级英语下册Unit 6 An old man tried to move a Mountain period one说课稿
The Advantages of Mobile Phone英语作文
Unit 1 London is the capital of England说课稿
《Module 4 Unit 2 Does Daming like bananas?》说课稿
Jolie drops battle over perfume named Shilohy英语作文
关于女性的英语作文:Inspiring women leading the way
雅思考试词义辨析—obviously, apparently, evidentl
英语作文Sustainable Development
英语作文:Time Is More Valuable Than Money
企业在面试时要求的7个特性
Chinas Liu to seek injury advice in US soon英语作文
背诵为王第一册 Unit38:I Don’t Have to Eat All the Egg
j2ee实习报告
优秀的英语作文:An Unforgettable Evening
Win10系统提示Officebackgroundtaskhandler.exe弹窗问题的解决方
新颖特别的个性签名
初中英语阅读训练International Mens Day
HCNP-Big Data-Developer V1.0试题及答案
The relationship between theory and practice大学英语作文
JavaScript中null和undefined的异同
Little Pigs,the Crane and a Wolf英语故事短文
英语阅读:Covergirl unveils empowering brand update
初中英语作文:Jim Lambert’s vacation plans
can be easily made to demonstrate英语作文
J2EE 7中Bean Validation1.1的新特性
Module 7 Travel Unit 2 We are going to visit the Ming Tombs
HCNP-Big Data-Developer V1.0考试大纲
英语口语:Teaching and Learning Responsibility
《You Cant Judge a William by Its Cover》英语美文欣赏