我學習JSF和跨越這條線進來:<h:messages>在JSF中做什麼?
<h:messages layout="table"></h:messages>
在一個示例應用程序
?
我不確定這條線做什麼?從代碼中刪除行時,我沒有遇到任何錯誤,並且能夠運行它並獲得相同的輸出?
我學習JSF和跨越這條線進來:<h:messages>在JSF中做什麼?
<h:messages layout="table"></h:messages>
在一個示例應用程序
?
我不確定這條線做什麼?從代碼中刪除行時,我沒有遇到任何錯誤,並且能夠運行它並獲得相同的輸出?
h:messages
標記呈現當前JSF視圖的所有消息,這些消息不包含在h:message
(標記爲缺失''的結尾)標記中。消息可以由支持bean(FacesContext.addMessage
)或由JSF隱式生成。
E.g.如果您已根據需要標記輸入值,並且用戶未填寫所需值即提交表單,則會向視圖添加錯誤消息。如果h:message
標籤綁定到相關組件,則該消息將在那裏呈現,否則將由視圖中的全局h:messages
標記呈現(如果有)。
layout
屬性指定要生成的HTML代碼應該是什麼樣子。 table
佈局(在您的示例中使用)使用HTML表格來顯示消息,而list
佈局使用項目符號列表(HTML ul
標記)。
如果你不指定在你看來一個h:messages
標籤,也沒有h:message
標籤,用戶將不會被有關錯誤的通知。因此,最佳做法是爲視圖的每個輸入組件添加一個h:message
標記,併爲您的整個視圖添加一個h:messages
標記,以確保所有消息對用戶可見。
你會在JSF Toolbox找到一個小巧的JSF標籤參考。
關於「呈現所有未包含的當前JSF視圖的消息」。我不認爲這是完全正確的。除了指定globalOnly =「true」之外,它將顯示所有消息。 – 2011-09-11 15:58:18
組件<h:message>
和<h:messages>
專用於向用戶顯示消息(通常爲錯誤消息)。
例如,當您對失敗的字段進行驗證(例如,用戶沒有填寫必填字段或在僅限數字字段中輸入字符串)時,FacesMessage
將被添加到FacesContext
目的。然後使用<h:message>
和<h:messages>
在頁面中顯示消息。
組件<h:messages>
將顯示FacesContext
中包含的所有消息,而<h:message>
專用於特定clientId(特定字段)。例如,當你想把消息放在一個字段附近時,後者是有用的。
請注意,您可以添加任何類型的消息將顯示給用戶:
FacesContext.getInstance().addMessage(null, new FacesMessage("The message to display"));
在這個例子中,第一個參數是由該消息有關領域的ID字段(有用的當該消息是特定字段的驗證消息)。 null
表示該消息是一般信息(即,不鏈接到任何特定字段)。
您可以看到這個組件的例子here。請注意,此示例使用「基本」<h:message/>
的擴展(由RichFaces提供)的rich:messages
,但原理相同。
我在示例代碼中出現的代碼行: –
bibek
2010-03-22 10:33:58
我編輯了您的問題。使用Ctrl + K快捷鍵在問題/答案中編寫代碼。 – romaintaz 2010-03-22 10:55:14
@romaintaz謝謝 – bibek 2010-03-22 11:37:10