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

歡迎訪問 生活随笔!

生活随笔

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

javascript

web.xml.jsf_使用JSF 2.0可以更轻松地进行多字段验证

發(fā)布時間:2023/12/3 javascript 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 web.xml.jsf_使用JSF 2.0可以更轻松地进行多字段验证 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

web.xml.jsf

開發(fā)應(yīng)用程序表單時最常見的需求之一是多字段驗證(或跨字段驗證,但我沒有使用此術(shù)語,因為當(dāng)我將其放在Google上時,實際上得到了一些戰(zhàn)后圖片)。 我正在談?wù)摰那闆r是,我們需要比較初始日期是早于結(jié)束日期還是值小于另一日期。 這不是在每個面向業(yè)務(wù)的框架中都有明顯的功能嗎? 并不是的。
不幸的是,JSF規(guī)范默認情況下不支持它。 因此,直到最新的生產(chǎn)版本( JSR 245 – JSF 2.1),JSF才提供現(xiàn)成的多字段驗證功能。
由于JSR 344提到了“多字段驗證”,因此我們可能希望在JSF 2.2中有所收獲 。 同時,開發(fā)人員利用了他們卓有成效的創(chuàng)造力來實施他們的解決方案。 您可以在Stackoverflow.com上找到許多可行的替代方案; 人們創(chuàng)建自己的組件 ; 在Java EE之上構(gòu)建的框架試圖覆蓋此功能; 還有很多其他情況。

我不喜歡找到的任何解決方案。 有些很復(fù)雜,有些則不太優(yōu)雅。 因此,我決定也要有創(chuàng)造力,并嘗試一個更簡單的解決方案,以便在重構(gòu)時間到來時易于理解和更改。 這并不意味著我提出的建議比其他建議要好。 我只是提出一些更簡單的建議。

在以下示例中,我檢查分配的預(yù)算是否小于預(yù)算限制。 如果不是,則向用戶顯示一條消息。 該示例僅考慮兩個字段,但是可以根據(jù)需要擴展到任意多個字段。

步驟1:在托管bean中為每個要驗證的字段創(chuàng)建一個屬性:

以下屬性專用于多字段驗證。

private BigDecimal allocatedBudget; private BigDecimal budgetLimit;

在此示例中,我在名為MBean的類中進行編碼,并用@ManagedBean和@RequestScoped進行了注釋。

步驟2:在相同的托管bean中為每個字段創(chuàng)建一個驗證方法

此解決方案考慮在托管bean中實現(xiàn)的驗證方法,而不是接口javax.faces.validator.Validator的實現(xiàn)。 只要定義三個標(biāo)準參數(shù),即FacesContext,UIComponent和代表該字段中輸入值的Object,就可以為驗證方法命名。 只有該值對我們的驗證有用。 請參閱驗證方法:

public void validateAllocatedBudget(FacesContext context,UIComponent component, Object value) {this.validationAllocatedBudget = (BigDecimal) value; }public void validateBudgetLimit(FacesContext context,UIComponent component, Object value) {this.validationBudgetLimit = (BigDecimal) value;if(this.validationBudgetLimit.compareTo(this.validationAllocatedBudget) < 0) {throw new ValidatorException(new FacesMessage("Invalid allocated budget!");} }

validateAllocatedBudget方法不會驗證分配的預(yù)算。 它只是將屬性validationAllocatedBudget設(shè)置為允許其值在以后使用。 有可能因為驗證方法的調(diào)用順序與在JSF代碼中聲明的順序相同。 因此,您可以為驗證所涉及的每個字段創(chuàng)建一個簡單的方法。 有效的驗證發(fā)生在方法validateBudgetLimit中,該方法是JSF文件中最新調(diào)用的驗證方法,因此也是最后一個要執(zhí)行的方法。

最好以表單中字段的相同順序聲明屬性和驗證方法。 該順序不會影響算法的功能,但有助于理解邏輯。 另一方面,JSF文件中的調(diào)用順序很重要。

步驟3:使用參數(shù)驗證器來引用驗證方法

從下面的字段中調(diào)用上述方法。 請記住,屬性和方法是在類MBean中實現(xiàn)的。

<h:outputLabel for="allocBudget" value="Allocated Budget"/> <h:inputText id="allocBudget" label="Allocated Budget"value="#{mBean.operation.allocatedBudget}"validator="#{mBean.validateAllocatedBudget}"/><h:outputLabel for="budgetLimit" value="Budget Limit"/> <h:inputText id="budgetLimit" label="Budget Limit"value="#{mBean.operation.budgetLimit}"validator="#{mBean.validateBudgetLimit}"/>

參考: Hildeberto博客博客中的JCG合作伙伴 Hildeberto Mendonca提供的使用JSF 2.0的更輕松多字段驗證 。

翻譯自: https://www.javacodegeeks.com/2012/12/easier-multi-field-validation-with-jsf-2-0.html

web.xml.jsf

總結(jié)

以上是生活随笔為你收集整理的web.xml.jsf_使用JSF 2.0可以更轻松地进行多字段验证的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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