2012-04-18 146 views
0

我正在學習JSF並開始在JSF 1.2中編寫自定義組件。有人可以澄清一下JSF'required'屬性如何在引擎蓋下工作嗎?我查看了生成的html,並沒有顯示任何需要的東西。自定義組件必需屬性

我正在寫一個帶有多個輸入文本的JSF組件,但只需要其中的一部分(例如,編寫2個輸入文本Zipcode組件,其中最後一個輸入文本總是可選的,而第一個輸入文本將由required屬性在XHTML中定義。

如何處理這種有選擇的「必要」的行爲?

回答

1

組件所需的屬性被存儲在服務器端ONLY,客戶不知道這些都是默認必填字段。當你發佈一個帶有空的必填字段的表單,JSF會將這些字段與它的服務器端模型進行比較,並從那裏進行驗證,爲空的必填字段呈現錯誤消息秒。您可以在JSF生命週期(僅在經過處理的服務器端)中見證這一點。如果必填字段爲空,則生命週期將在步驟3停止,並跳過模型更新。

  1. 恢復視圖
  2. 應用請求值;過程事件
  3. 過程驗證;過程事件
  4. 更新模型值;處理事件
  5. 調用應用程序;處理事件
  6. 渲染響應

關於你提到的第二個問題,如果輸入文本的數量是靜態的,你可以簡單地設置他們中的一些required="true",有的required="#{cc.attrs.required}"