<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的新特性

    時(shí)間:2024-10-07 06:32:09 J2EE培訓(xùn) 我要投稿
    • 相關(guān)推薦

    J2EE 7中Bean Validation1.1的新特性

      J2EE 7中的Bean Validation 1.1正式發(fā)布很久了了。與此同時(shí),Jave EE 7平臺(tái)的最終標(biāo)準(zhǔn)也一定制定了。下面小編為大家整理了關(guān)于J2EE 7中Bean Validation1.1的新特性,希望能為你提供幫助:

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

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

      must be less than ${inclusive == true ? 'or equal to '> : ''}{value}"

      這里,假設(shè) value賦值為50的話,則假如@DecimalMax 中設(shè)置了inclusive屬性為true,則輸出:

      must be less than or equal to 50;如果設(shè)置為false,則輸出must be less than 50。

      validatedValue特性

      在Bean validation 1.1中,還可以在bean的約束屬性中,設(shè)計(jì)當(dāng)某個(gè)bean違反了某個(gè)約束規(guī)則后,顯示所違反規(guī)則的真實(shí)的值,如下面的例子:

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

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

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

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

      EL和Classpath

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

    【J2EE 7中Bean Validation1.1的新特性】相關(guān)文章:

    關(guān)于HTML5的新特性介紹01-04

    Win10系統(tǒng)新特性有哪些03-17

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

    什么是J2EE03-16

    j2ee介紹03-20

    J2EE的概念03-19

    J2EE發(fā)展?fàn)顩r03-19

    J2EE的基本術(shù)語03-16

    J2EE基礎(chǔ)概念03-30

    主站蜘蛛池模板: 66精品综合久久久久久久| 国产成人精品电影在线观看| 国产精品分类视频分类一区| 国产精品人成在线播放新网站 | 久久精品国产亚洲AV高清热| 中文精品无码中文字幕无码专区| 一本之道av不卡精品| 久久精品国产亚洲77777| 国产亚洲精品无码拍拍拍色欲| 蜜臀AV无码国产精品色午夜麻豆| 亚洲精品无码久久久| 欧美亚洲色综久久精品国产| 成人精品视频99在线观看免费| 欧美成人精品第一区二区| 2024国产精品极品色在线| 国产成人vr精品a视频| 亚洲∧v久久久无码精品 | 久久久久一级精品亚洲国产成人综合AV区| 精品人体无码一区二区三区| 午夜一级日韩精品制服诱惑我们这边 | 特级精品毛片免费观看| 久久久精品久久久久特色影视| 国产成人1024精品免费| 亚洲第一区精品日韩在线播放| 国产精品小视频免费无限app | 视频二区国产精品职场同事| 久久国产热这里只有精品| 99精品在线免费| 国产精品亚洲专区在线观看| 成人伊人精品色XXXX视频| 精品国产AV一区二区三区| 国产精品日日摸夜夜添夜夜添1国产精品va欧美精 | 亚洲精品V欧洲精品V日韩精品| 久热这里只精品99re8久| 亚洲AV无码乱码精品国产| 久久精品亚洲福利| 精品人妻无码专区中文字幕| 久久国产午夜精品一区二区三区| 国产中文在线亚洲精品官网| 久久99精品久久久久久水蜜桃| 久久久久久久久久免免费精品 |