在ajax请求后重新呈现RichFaces错误消息

我正在使用自定义ajax,称为javacode,它在服务器上进行一些处理。在这个过程中可能会出现各种错误,我通过
addMessage()
添加到
FacesContext
。 我想在我用于验证错误的相同
<rich:messages>
标签中显示这些消息。 在ajax请求完成后,您知道在
<rich:messages>
标签中显示这些消息的方法吗? 我最初的想法是添加
<a4j:jsFunction name="richDisplayError" reRender="messages" />
到标记并在请求完成时调用richDisplayError,但似乎消息面板被重新呈现为空。     
已邀请:
<rich:messages>
默认为
ajaxRendered
set至
true
。所以问题出在其他地方。也许: 您正在重定向,而不是转发,并且消息丢失 你实际上并没有添加消息(请参阅调试) 你有不同的/缺乏观点/子视图     
例如,在您的页面中:
    <a4j:commandButton value="Action"
           limitToList="true" 
           action="#{mybean.action}"
           reRender="mymessages">
    </a4j:commandButton>
    <a4j:outputPanel ajaxRendered="true">
       <h:messages id="mymessages"  />
    </a4j:outputPanel>
然后在你的豆:
public void action(){                         
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("hello world")); 
}    
    
你需要3件事: 1st:在“ resources bundle errorMessages.properties”文件中声明您的错误消息,如下所示:
errorMsgToDisplay.errName = Your Error Message Here
第二:在类代码中声明你的BUNDLE变量:
private static final ResourceBundle BUNDLE = ResourceBundle.getBundle("/bundle/errorMessages");
第3步:显示消息(例如在条件之后)
if  ( condition ) {
FacesContext.getCurrentInstance().addMessage("", new FacesMessage(FacesMessage.SEVERITY_ERROR, 
BUNDLE.getString("errorMsgToDisplay.errName"),
BUNDLE.getString("errorMsgToDisplay.errName")));
}
    

要回复问题请先登录注册