成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

J2EE 7中Bean Validation1.1新特性介紹---表達式語言

譯文
開發(fā) 后端
J2EE 7中的Bean Validation 1.1正式發(fā)布以來已經(jīng)有數(shù)周了。與此同時,Jave EE 7平臺的最終標準也一定制定了。現(xiàn)在,是時候去了解下我們能從這次BeanValidation的版本更新中得到什么新的特性以及了解其參考實現(xiàn)Hibernate Validator 5的新功能。

J2EE 7中的Bean Validation 1.1正式發(fā)布以來已經(jīng)有數(shù)周了。與此同時,Jave EE 7平臺的最終標準也一定制定了。現(xiàn)在,是時候去了解下我們能從這次BeanValidation的版本更新中得到什么新的特性以及了解其參考實現(xiàn)Hibernate Validator 5的新功能。在本文中,將簡要向開發(fā)者介紹J2EE7中Bean Validation  1.1新特性――表達式語言。首先要了解下Bean Validation標準。所謂的Bean Validation,就是JavaEE 提出的使用注解的方式對Java Bean 進行約束驗證的規(guī)范。目前最新的BeanValidation 1.1標準請參考(http://beanvalidation.org/1.1/)。在最新的1.1規(guī)范中,引入了類似JSP中的表達式語言(EL,標準請參考http://jcp.org/en/jsr/detail?id=341)。要知道,EL其實的應用場合是很廣的,特別是一些很好的用法如Lambda表達式等都有很大用處,而且能用在J2SE或J2EE中。在Bean Validation 1.1中,開發(fā)者可以充分利用EL表達式中的強大的功能去做一些條件的判斷以及實現(xiàn)一些自定義輸出。

使用EL表達式限制值作為例子,首先來看下其內(nèi)置的@DecimalMax約束。在BeanValidation 1.1中,該約束增加了一個新的標志位名為inclusiv,它表示約束中是否包含或不包含給定的最大值。根據(jù)該標志位,約束限制的信息或者是小于給定的值{value}或者是等于給定的值{value}。這樣的用法BeanValidation 1.0中是比較難實現(xiàn)的,但在1.1中缺很容易實現(xiàn),下面是一個典型的例子:

  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違反了某個約束規(guī)則后,顯示所違反規(guī)則的真實的值,如下面的例子:

  1. @ValidCustomer( message = "Not a valid customer: ${validatedValue.getName()}" ) 
  2. public class Customer { 
  3.     //... 
  4.    public String getName() { 
  5.         return name; 
  6.     } 

在這個例子中,當這個bean違反了@ValidCustomer這個約束后,則會顯示出:“Not a valid customer: Bob”這樣的提示信息。也就是說,通過使用注解${validatedValue.getName(),獲得了違反規(guī)定的輸入的值Bob,這里是通過反射機制通過getName()方法獲得的。新的格式化功能 最后,在Bean validation 1.1中,在格式化顯示字符串方面提供了工具助手類formatter,其使用格式為:format(String format, Object... args),這個跟Java語言中的java.util.Formatter.format(String format, Object...args)其實是差不多的。如果用在格式化數(shù)字的時候是相當方便的,如下例子所示:

  1. public class Order { 
  2.  
  3.     @DecimalMin(value="20.00", message="Order value too low: € ${formatter.format('%08.2f', validatedValue )}"
  4.     private final BigDecimal value; 
  5.  
  6.     //... 

如果輸入的數(shù)字小于20,則會輸出:Order value too low: € 00017.89,這里是取了兩位小數(shù)。

EL和Classpath

為了充分利用EL表達式,必須在classpath中放置EL的實現(xiàn)jar包。當在如WildFly等JavaEE容器中運行的時候通常會遇到點問題,開發(fā)者也需要在普通的JavaSE環(huán)境中增加EL的實現(xiàn)jar包。兩種目前能和HibernateValidator工作良好的實現(xiàn)是EL的參考實現(xiàn)和JUEL。而對于使用Tomcat的用戶,HiberateValidator至少需要的是EL 2.2標準,這個在Tomcat7中已經(jīng)實現(xiàn)了。而Tomcat 6則只能和EL2.1的實現(xiàn)搭配使用。這個是否意味著Tomcat 6就不能享用EL的新功能?幸運的是,只需要額外的一些準備工作,可以通過查看HibernateValidator FAQ去學習如何更新Tomcat的EL類庫。親自動手如果要體驗最新的Bean validation 1.1的特性,可以從這里鏈接獲得最新的Hibernate Validator。如果使用的是Maven,Gradle等構(gòu)建工具,則可以使用org.hibernate.hibernate-validator.5.0.1.Final的坐標進行查找。如果你是編成愛好者,甚至可以下載WildFly的代碼進行構(gòu)建,它使用了最新的Hibernate validator 5。最新的參考手冊有詳細的信息可供開發(fā)者參考,也可以在相關(guān)的論壇中進行發(fā)問。

原文鏈接:http://in.relation.to/Bloggers/BeanValidation11FeatureSpotlightExpressionLanguage

責任編輯:陳四芳 來源: 51CTO
相關(guān)推薦

2009-06-23 08:06:46

J2EE體系架構(gòu)J2EE模型J2EE設計模式

2009-06-10 14:10:23

J2EE學習J2EE是什么

2009-06-11 17:06:11

J2EE歷史Java EE概述

2009-06-10 13:37:06

J2EE可伸縮性J2EE靈活性J2EE維護

2011-06-30 09:49:40

JSPJ2EE

2011-07-21 14:23:03

J2EE

2009-06-23 16:48:26

J2EE常見問題J2EE平臺

2009-06-16 13:27:59

Hibernate x

2009-06-22 17:05:41

Java EEJava企業(yè)應用

2009-06-22 17:34:40

J2EE架構(gòu)

2009-06-18 15:54:57

J2EE下使用JNDI

2009-06-23 08:12:48

J2EE調(diào)用存儲過程

2009-06-22 16:21:02

J2EE線程

2009-06-18 16:13:14

J2EE開發(fā)

2011-04-02 14:33:51

Bean ValidaJava EE 6Java

2009-06-22 11:15:00

J2EE應用測試

2009-06-12 08:54:22

EJB術(shù)語J2EE

2009-06-19 17:03:44

J2EE學習

2009-06-22 11:04:00

Jdbc存儲過程

2011-05-16 14:07:58

J2EE
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲自拍一区在线观看 | 国产99久久 | 欧美一区二区三区国产 | 99精品久久久 | 免费看av大片 | 精品久久久久久红码专区 | 国产视频第一页 | 成人久久久 | www.亚洲视频 | 九九热免费在线观看 | 日日噜噜噜夜夜爽爽狠狠视频97 | 精精国产xxxx视频在线播放 | 91精品国产综合久久精品 | 成人国产免费视频 | 一区二区精品在线 | 粉嫩粉嫩芽的虎白女18在线视频 | 久久精品99| 亚洲精品片 | 成人av网站在线观看 | 国精久久 | 不卡一区二区在线观看 | 久久久久国产精品一区二区 | 华丽的挑战在线观看 | 日韩在线 | 国产成人精品免费视频大全最热 | 青青久草 | 日韩在线精品视频 | 欧美激情视频网站 | 另类 综合 日韩 欧美 亚洲 | 日本三级精品 | 成人欧美一区二区 | 在线色 | 国产午夜高清 | 亚洲成人精品一区 | 看片91| 涩涩视频网 | 欧美黄色片 | 久久久91精品国产一区二区三区 | 久久久久国产一区二区三区 | 午夜影院在线免费观看视频 | 国产精品视频网站 |