日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

在JSF 2中对定制验证器进行参数化

發(fā)布時(shí)間:2023/12/3 javascript 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在JSF 2中对定制验证器进行参数化 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在JSF 2中編寫自定義驗(yàn)證器并不復(fù)雜。 您實(shí)現(xiàn)Validator接口,添加@FacesValidator批注,并在faces-config.xml中插入Validator聲明, 僅此而已 。 一塊蛋糕。 但是,讓我們考慮以下情形:

您需要自定義日期驗(yàn)證器,比方說檢查rich:calendar中的日期是否不是過去的日期。 因此,我們?cè)谌諝v組件中放置了驗(yàn)證器。

<rich:calendar value="#{fieldValue}" id="dateField" datePattern="yyyy/MM/dd"><f:validator validatorId="dateNotInThePast"/></rich:calendar>

我們的驗(yàn)證器可能如下所示:

@FacesValidator("dateNotInThePast") public class DateNotInThePastValidator implements Validator {@Overridepublic void validate(FacesContext facesContext, UIComponent uiComponent, Object value)throws ValidatorException {if (ObjectUtil.isNotEmpty(value)) {checkDate((Date)value, uiComponent, facesContext.getViewRoot().getLocale());}}private void checkDate(Date date, UIComponent uiComponent, Locale locale) {if(isDateInRange(date) == false) {ResourceBundle rb = ResourceBundle.getBundle("messages", locale);String messageText = rb.getString("date.not.in.the.past");throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR,messageText, messageText));}}private boolean isDateInRange(Date date) {Date today = new DateTime().withTime(0, 0, 0, 0).toDate();return date.after(today) || date.equals(today);} }

如果我們?cè)趯傩晕募刑峁╂I值,我們將看到類似以下內(nèi)容:

因此,看來我們已經(jīng)可以使用生產(chǎn)就緒的自定義驗(yàn)證器。

問題

但是,當(dāng)我們的表格變得越來越復(fù)雜時(shí),我們可能會(huì)遇到以下屏幕上描述的問題:

因此,問題在于用戶如何確定哪個(gè)日期有效和哪個(gè)日期無效? 我們的驗(yàn)證器使用相同的屬性鍵來顯示兩個(gè)錯(cuò)誤消息。

解決方案

我們需要以某種方式向我們的自定義驗(yàn)證器提供已驗(yàn)證字段的標(biāo)簽。 而且,對(duì)于JSF而言,令人驚訝的是,它可以很容易地實(shí)現(xiàn)。 唯一的問題是您必須知道如何做

因此,在Java Server Faces中,我們可以對(duì)具有屬性( f:attribute標(biāo)簽)的組件進(jìn)行參數(shù)化。 因此,我們將屬性添加到rich:calendar,然后在分配給此日歷字段的驗(yàn)證器中讀取此傳遞的值。 因此,現(xiàn)在我們的日歷組件應(yīng)如下所示:

<rich:calendar value="#{fieldValue}" id="dateField" datePattern="yyyy/MM/dd"><f:validator validatorId="dateNotInThePast"/><f:attribute name="fieldLabel" value="Date field 2" /></rich:calendar>

在我們的驗(yàn)證器Java類中,我們可以使用uiComponent.getAttributes()。get(“ fieldLabel”);獲得此值。

private void checkDate(Date date, UIComponent uiComponent, Locale locale) {if(isDateInRange(date) == false) {ResourceBundle rb = ResourceBundle.getBundle("messages", locale);String messageText = getFieldLabel(uiComponent) +" " + rb.getString(getErrorKey());throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR,messageText, messageText));}}protected String getFieldLabel(UIComponent uiComponent) {String fieldLabel = (String) uiComponent.getAttributes().get("fieldLabel");if(fieldLabel == null) {fieldLabel = "Date" ;}return fieldLabel;}

我們錯(cuò)誤的屬性值應(yīng)為過去的值,因?yàn)槿掌诨蜃侄螛?biāo)簽將添加到錯(cuò)誤消息的開頭。

工作示例應(yīng)顯示與此屏幕類似的內(nèi)容:

參考:來自Code Hard Go Pro博客的JCG合作伙伴 Tomasz Dziurko 在JSF 2中對(duì)定制驗(yàn)證器進(jìn)行參數(shù)化

相關(guān)文章 :

  • Java EE過去,現(xiàn)在和云7
  • JBoss AS 7.0.2“ Arc”發(fā)布–使用綁定選項(xiàng)
  • 那些邪惡的框架及其復(fù)雜性
  • 真正的模塊化Web應(yīng)用程序:為什么沒有開發(fā)標(biāo)準(zhǔn)?
  • 編程反模式
  • Java教程和Android教程列表

翻譯自: https://www.javacodegeeks.com/2011/10/parametrizing-custom-validator-in-jsf-2.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的在JSF 2中对定制验证器进行参数化的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产91专区| 国产日产精品一区二区 | 欧美熟妇激情一区二区三区 | 影音先锋中文字幕人妻 | 午夜免费看视频 | 日韩涩| 综合久久2o19 | 黄色不卡av | 国产成人自拍视频在线观看 | 国产亚洲精品美女 | 天堂久久一区 | 欧美不卡三区 | 里番acg★同人里番本子大全 | 夜夜操导航 | 久久在线免费视频 | 99re视频 | 免费99视频| 中文字幕一区二区在线播放 | 欧美黄色短视频 | 骚色综合 | 欧美日韩aaa | 男人插女人视频网站 | 国产精品国产精品国产专区 | 欧美成人一区二区三区 | 欧美日韩亚洲一区二区 | 全部孕妇毛片丰满孕妇孕交 | 天天玩夜夜操 | 亚洲视屏在线观看 | 免费国产视频在线观看 | 日韩欧美二区三区 | 综合色影院 | 天堂一二三区 | av999| 日本一区二区久久 | 日韩一区二区视频在线 | 蜜桃精品久久久久久久免费影院 | 宝贝乖h调教灌尿穿环 | 青青草官网 | 少妇色综合 | 亚洲一级片在线播放 | 免费毛片看片 | 成人xxx| 男女草逼网站 | 高清国产视频 | 中文字幕日韩精品一区 | 欧美污视频 | 亚洲av片不卡无码久久 | 在线免费观看av的网站 | 色狠| 日韩av在线网址 | 青青青草视频 | 粗了大了 整进去好爽视频 日本女优中文字幕 | 欧美三级韩国三级日本三斤 | 丁香六月天婷婷 | 少妇2做爰bd在线意大利堕落 | 91视频进入| 亚洲不卡在线视频 | 亚洲爆乳无码精品aaa片蜜桃 | 亚洲午夜精品久久久 | 亚洲天堂成人网 | 官场艳妇疯狂性关系 | 久久久久久久久久一区二区三区 | 日韩欧美自拍偷拍 | 日韩熟女精品一区二区三区 | 国产福利91精品 | 人妻少妇精品视频一区二区三区 | 91传媒网站 | 日韩中文字幕亚洲 | 欧美三级在线看 | 青娱乐最新视频 | 色婷婷久久综合中文久久蜜桃av | 粉嫩av一区 | 成人依依网 | 蜜臀久久99精品久久久久久 | 国产精品久久久久久精 | 国产福利在线 | 爱情岛亚洲品质自拍极速福利网站 | 亚洲一区二区三区在线 | 香蕉视频在线免费看 | a v在线视频 | 艳妇乳肉豪妇荡乳av无码福利 | 天天干,天天操,天天射 | 欧美日韩极品 | 91成人免费在线观看视频 | 三年电影在线观看 | 亚洲国产精品影院 | 精品久久蜜桃 | 久久综合久久鬼 | 日韩wwww| 亚洲国产成人精品女人久久 | 99爱视频在线| 操操操操操操 | 久久久久久久黄色片 | 中文在线永久免费观看 | 久久色婷婷 | 91丨porny丨国产入口 | 少妇性l交大片免潘金莲 | 久久国产精品国语对白 | 欧日韩在线观看 |