我正在使用自定义的ajax-called javacode,它在服务器上进行一些处理。在此过程中,我可以通过FacesContext
向addMessage()
添加各种错误。
我想在我用于验证错误的<rich:messages>
标记中显示这些消息。
您知道在ajax请求完成后在<rich:messages>
- 标记中显示这些消息的方法吗?
我最初的想法是添加
<a4j:jsFunction name="richDisplayError" reRender="messages" />
到标记并在请求完成时调用richDisplayError,但似乎消息面板被重新呈现为空。
答案 0 :(得分:4)
<rich:messages>
默认情况下ajaxRendered
设置为true
。所以问题出在其他地方。也许:
答案 1 :(得分:2)
例如,在您的页面中:
<a4j:commandButton value="Action"
limitToList="true"
action="#{mybean.action}"
reRender="mymessages">
</a4j:commandButton>
<a4j:outputPanel ajaxRendered="true">
<h:messages id="mymessages" />
</a4j:outputPanel>
然后在你的bean:
public void action(){
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("hello world"));
}
答案 2 :(得分:0)
您需要3件事:
第一:在&#34; \ resources \ bundle \ errorMessages.properties&#34;中声明您的错误消息。文件,像这样:
errorMsgToDisplay.errName = Your Error Message Here
2nd :在类代码中声明您的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")));
}