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的坐标进行查找。
-
JDBC对数据库进行操作的流程
尽管在实际开发过程中,我们一般使用ORM框架来代替传统的JDBC,例如Hibernate或者iBatis,但JDBC是Java用来实现数据访问的基础,掌握它对于我们理解Java的数据操作流程很有帮助。JDBC的全称是JavaDatabaseConnectivity。JDBC对数据库进行操作的'流程:连接数据库发送数...
-
j2ee架构师介绍
作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从。以下是小编整理的j2ee架构师介绍,希望大家认真阅读!高级系统架构师(J2EE)工作职责:负责5GPOS的SOA接口,WebMethods接口;负责5GPOS的SA工作,主要负责版本维护,管理ODC开发资...
-
2016年J2EE认证测试题及答案
J2EE:电子商务和信息技术的快速发展以及对它们的需求给应用程序开发人员带来了新的压力。必须以比以前更少的金钱、更少的资源来更快地设计、开发企业应用程序。那么关于J2EE认证考试你通过了吗?下面yjbys小编为大家分享的是J2EE认证测试题及答案,希望对大家有...
-
Java EE的Web服务体系结构
Web服务(WebServices)是目前程序设计领域中的一项新技术,是一个崭新的分布式计算模式,在不同系统平台之间具有互操作性,通过因特网,实现不同应用程序之间的远程过程调用。下面小编为大家整理了关于JavaEE的Web服务体系结构,一起来看看吧:Web服务使用基于XML的消息处...
相关文章
- A Lifeguard at Johns Beach Saved a Drowning Child,A Lifeguar英语作文
- Diaspora Finance Powers Global Development美文欣赏
- 《Unit 2 Does Daming like bananas?》说课稿
- 八年级英语下册Unit 6 An old man tried to move a Mountain period one说课稿
- win7系统重装win10提示not a valid image file
- 英语作文International Day of Peace Vigil
- 最新《Fate/Stay Night Unlimited Blade Works》经典名句
- 英语阅读:African Union Leaders Talk Mali, Chinese Investmen
- 关于Unit 1 The Dragon Boat Festival教学案
- Food and place of interest in Beijing初中英语作文