有沒有什麼方法可以驗證jsf輸入文本是隻讀的,但其值會在觸發其他某些事件時更改?jsf(richfaces)只讀輸入文本驗證
6
A
回答
2
我用解決方法解決了這個問題。我已經添加了具有required
屬性true
不會在界面上出現的inputHidden
場,但將被驗證:
<h:inputHidden value="#{bean.value}" required="true"
requiredMessage="Data must be entered" />
bean.value的價值被其他事件改變,在一些重新描繪上inputHidden,驗證發生。
1
您很可能必須直接從您的事件手動調用驗證邏輯。這是來自IBM的JSF生命週期模型。
你會發現調用應用程序階段,事件通常被處理之前處理驗證階段發生。這種情況發生後很好,所以驗證不會自動發生。
2
回答評論:「在jsf頁面支持bean中驗證它會更容易嗎?」 您可以對按鈕單擊或某些類似事件進行應用程序級驗證。你可以在你的支持bean中做這樣的事情,並將它鏈接到事件。
public String login(){
FacesContext context = FacesContext.getCurrentInstance();
if(**<<some validation for value in field 'firstName' in form 'userForm'>>**){
FacesMessage message = new FacesMessage();
message.setSeverity(FacesMessage.SEVERITY_ERROR);
message.setSummary("Some Valication check");
message.setSummary("Some Valication check!!");
context.addMessage("userForm:firstName", message);//adds validation message for field firstName in form userForm
return "ERROR";
}
return "SUCCESS";
}
希望這對我有所幫助。
12
僅在渲染響應階段將readonly
屬性設置爲true
。通過這種方式,在渲染響應階段以外的其他階段不會被視爲只讀。
<h:inputText ... readonly="#{facesContext.currentPhaseId.ordinal eq 6}" />
+2
在我的例子中,當繪製HTML(當它打印在中間)時,#{facesContext.renderResponse}返回false。無論如何,它的工作方式是'#{facesContext.currentPhaseId.ordinal eq 6}'。 Mojarra 2.1.9。 – SJuan76 2012-09-20 11:28:42
相關問題
- 1. JSF和RichFaces實時驗證輸入框
- 2. 只驗證新輸入的文本
- 3. jsf-驗證與從輸入
- 4. jsf輸入分隔驗證
- 5. 窗體在只讀輸入上驗證
- 6. JSF Richfaces和自定義驗證
- 7. JSF和Richfaces中的日期驗證
- 8. 輸入文本框驗證
- 9. 文本輸入驗證4.0
- 10. 文本輸入驗證
- 11. 文本框輸入驗證
- 12. 驗證文本框輸入
- 13. Asp.Net驗證器和只讀文本框
- 14. 驗證隻字母輸入
- 15. 只驗證髒輸入
- 16. JSF 2.0 - Ajax提交驗證輸入
- 17. 驗證JSF中的小數輸入
- 18. 只讀文本輸入Rails3中
- 19. HTML輸入只讀截尾的文本
- 20. 驗證用戶輸入,只和整數純文本
- 21. 驗證動態創建文本框只輸入數字
- 22. 如何在春天mvc驗證文本框只輸入數字?
- 23. JSF/RichFaces:條件文本樣式
- 24. 驗證輸入多個文本框
- 25. 驗證輸入文本軌道
- 26. 輸入文本驗證何時爲空
- 27. jQuery的空文本輸入驗證
- 28. 輸入文本驗證錯誤 - JSP
- 29. 使用angularJS驗證輸入文本
- 30. 無法正確驗證輸入=文本
無論在jsf頁面支持bean中驗證它會更容易嗎? – Richie 2012-03-08 12:17:55
如何觸發驗證併發出驗證消息? – 2012-03-09 23:15:06
我已添加答案作爲回覆評論。歡呼聲 – Richie 2012-03-12 11:18:26