如何爲複合組件實現交叉字段驗證?我使用的複合組件是一個輸入文本框(一個用於電子郵件,另一個用於確認電子郵件)。我爲confirmEmail組件應用了f:validator標籤。如何在validate方法中獲取電子郵件複合組件的值。它是UIComponent還是UINamingContainer?複合組件的交叉字段驗證
0
A
回答
0
從技術上講,你的組合是UINamingcontainer,但任何組件都可以找到它的子組件。
我懷疑類似於下面的東西應該工作
public void validate(FacesContext context, UIComponent component, Object value) {
UIInput first = (UIInput)component.findComponent("compositesFirstInputID");
UIInput second = (UIInput)component.findComponent("compositessecondInputID");
Object firstEntry = first.getSubmittedValue();
Object secondEntry = second.getSubmittedValue();
if(!firstEntry.equals(secondEntry))
throw new ValidatorException(...);
}
可能要添加一些空的檢查,可能是修剪(),並使用equlasIgnoreCase。
+0
@deepti錯讀你的問題 - 以爲你有一個具有兩個輸入的組合,而使用頁面的組合引用有一個孩子f:驗證。 – JimO 2011-03-26 05:25:57
0
我已經實現了上面討論的驗證方法。我認爲我的代碼的問題是在複合組件上使用f:validate標記的位置。
<eg:inputText id="confirmEmail" value="backingbean.email"/>
<eg:inputText id="email" value="backingbean.email">
<f:validator validatorId="core.jsf.CompareValidator" for="inputText"/>
</eg:inputText>
但是,當我提交表單驗證器沒有被調用。我是否應該在組件上包裝驗證器,或者這是實現的正確方法。
相關問題
- 1. 基於值的交叉字段驗證
- 2. 交叉驗證
- 3. Weka文件「交叉驗證」
- 4. JSF複合組件驗證
- 5. GBM交叉驗證
- 6. SKLearn交叉驗證:
- 7. 交叉驗證與
- 8. 做交叉驗證
- 9. R交叉驗證
- 10. JSR交叉提交驗證
- 11. 交叉聯接不重複的組合
- 12. 需要交互/驗證的表單中的複合組件
- 13. LightGBM中的交叉驗證
- 14. SAS中的交叉驗證
- 15. 在jsf h中交叉字段驗證:datatable使用p:日曆
- 16. ASP.NET MVC 4交叉字段或屬性驗證
- 17. JSF2交叉字段驗證失敗循環
- 18. 如何使用jQuery進行交叉字段驗證?
- 19. MVC 2:交叉字段自定義驗證
- 20. ROC曲線交叉驗證
- 21. K-折交叉驗證
- 22. 交叉表數據驗證
- 23. 交叉驗證錯誤
- 24. 交叉驗證過程
- 25. 與ROC交叉驗證?
- 26. Keras和交叉驗證
- 27. 10倍交叉驗證
- 28. 4折交叉驗證| Caffe
- 29. k表示交叉驗證
- 30. 問題與交叉驗證
[JSF2.0不支持交叉字段驗證,是否有解決方法?](http://stackoverflow.com/questions/6282466/jsf2-0-doesnt-support-cross-field-驗證是否有解決方法) – 2012-07-03 12:35:29