ui:repeat没有检测到#{facesContext.messageList}中的错误消息

时间:2016-03-08 20:53:44

标签: jsf jsf-2.2 messages myfaces uirepeat

我正在使用JSF 2.2(Myfaces 2.2.9)。

我想在JSF中迭代消息以显示错误,我在使用ui:repeat元素时遇到了一些问题。

我的.xhtml页面:

    message size = #{facesContext.messageList.size()}
    <br />
    <ui:repeat var="msg" value="#{facesContext.messageList}">
        #{msg.detail}
    </ui:repeat>

提交表单时,它会调用我的支持bean的功能 在该函数中,我添加了一个“INFO”全局消息,当我的.xhtml页面显示时,我得到它:

FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "info message", "info message"));

然后显示:

message size = 1  
info message

但是如果我将严重性更改为SEVERITY_ERROR:

FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "info message", "info message"));  

然后视图不显示任何消息,即使大小不为空:

message size = 1  

如果我只是在信息消息后添加错误消息:

FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "info message", "info message"));  
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "error message", "error message"));  

message size = 2  

似乎添加了一个与INFO不同的严重信息正在搞砸事情。 任何帮助将不胜感激,这让我疯狂......

我检查了很多关于生命周期(BalusC答案)的答案,我理解的是ui:repeat作为渲染时间执行。所以它应该有用。

0 个答案:

没有答案