這是場景。在我管理的bean,我創建了一個新的FacesMessage對象,並將其添加到FacesContext中,不與任何UI組件進行關聯,就像這樣:JSF:FacesMessage被顯示兩次
FacesContext context = FacesContext.getCurrentInstance();
FacesMessage message = new FacesMessage();
message.setSummary("Hi there!");
context.addMessage(null, message);
在我的XHTML頁面,我輸出我的消息,像這樣:
<h:messages id="someId" globalOnly="true" showSummary="true" showDetail="false" styleClass="startUpMessages"/>
然而,生成的HTML顯示消息的摘要兩次,像這樣:
<ul id="mainForm:someId" class="startUpMessages"><li> Hi there! </li><li> Hi there! </li></ul>
<ul id="javax_faces_developmentstage_messages" title="Project Stage[Development]: Unhandled Messages"></ul>
任何人都可以解釋這種現象?
你確定你的代碼添加消息不是多次運行嗎?放置簡單的打印輸出..... – Daniel
我已經按照您的建議在FacesMessage創建旁邊的託管bean中放置了一個打印輸出。打印輸出只出現一次。 – Jim
只是好奇,如果你做context.addMessage(「測試」,消息);和globalOnly =「false」是否會刪除其他消息? –