<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • J2EE 7中Bean Validation1.1的新特性

    時間:2024-10-07 06:32:09 J2EE培訓 我要投稿
    • 相關推薦

    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標準請參考(http://beanvalidation.org/1.1/)。在最新的1.1規范中,引入了類似JSP中的表達式語言(EL,標準請參考http://jcp.org/en/jsr/detail?id=341)。要知道,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: ${validatedValue.getName()}" ) public class Customer { //... public String getName() { return name; } }

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

      public class Order { @DecimalMin(value="20.00", message="Order value too low: € ${formatter.format('%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等構建工具,則可以使用org.hibernate.hibernate-validator.5.0.1.Final的坐標進行查找。

    【J2EE 7中Bean Validation1.1的新特性】相關文章:

    關于HTML5的新特性介紹01-04

    Win10系統新特性有哪些03-17

    淺析CSS3的新功能和新特性03-06

    什么是J2EE03-16

    j2ee介紹03-20

    J2EE的概念03-19

    J2EE發展狀況03-19

    J2EE的基本術語03-16

    J2EE基礎概念03-30

    主站蜘蛛池模板: 国产精品免费AV片在线观看| 99re国产精品视频首页| 久久久久久夜精品精品免费啦| 欧美国产亚洲精品高清不卡| 亚洲国产精品无码久久一区二区 | 久久亚洲精品视频| 久久久久无码精品国产| 亚洲精品成a人在线观看| 国产亚洲精品免费视频播放| 国产精品美女久久久| 日产精品久久久一区二区| 亚洲国产av无码精品| 国产系列高清精品第一页| 9191精品国产免费久久| 欧美成人精品一级高清片| 99re热这里只有精品视频中文字幕| 无码国产精品一区二区免费3p| 亚洲精品无码专区2| 久久久久久青草大香综合精品| 国产小呦泬泬99精品| 日韩精品无码AV成人观看| 九九热在线精品视频| 国产精品高清一区二区三区不卡 | 久久精品亚洲日本波多野结衣| 亚洲日韩精品射精日| 亚洲国产精品日韩| 四虎永久在线精品国产馆V视影院| 久草视频精品在线| 白浆都出来了视频国产精品| 91久久精品国产成人久久| 中文字幕亚洲精品| 99九九精品免费视频观看| 成人一区二区三区精品| 91精品成人免费国产片 | 亚洲精品高清久久| 99riav国产精品| 国产精品青草久久久久福利99| 精品久久久久久国产三级| 久久夜色精品国产亚洲av| 正在播放国产精品每日更新| 无码人妻精品一区二区三区在线|