相关疑难解决方法(0)

如何在@PostConstruct期间添加Faces消息

在一个支持bean的@PostConstruct方法中,我调用了一个EJB,它可能会返回一些我希望通过p:messages在页面上显示的消息.但是,即使我添加FacesMessages,例如FacesContext.getCurrentInstance().addMessage(...),也不会使用FacesMessages更新p:messages.

如果我不是调用从页面的动作调用EJB(比如用户点击它调用调用EJB的方法在页面上的一个按钮,然后添加的FacesMessage(S)),那么messags显示用对:消息按预期.

如何在@PostConstruct期间添加Faces消息并在最初呈现页面时显示它们?

码:

Page1Controller.java:

@ManagedBean
public class Page1Controller
{
    @PostConstruct
    public void init()
    {
        FacesContext.getCurrentInstance().addMessage(null, 
            new FacesMessage("Test Message from @PostConstruct"));
    }

    public String getValue()
    {
            return "Some Value";
    }

    public void triggerMessage(ActionEvent event)
    {
            FacesContext.getCurrentInstance().addMessage(null, 
                    new FacesMessage("Test Message from Trigger Button"));      
    }

}
Run Code Online (Sandbox Code Playgroud)

page1.xhtml

   <h:form>
        <p:messages showDetail="true" showSummary="true" autoUpdate="true"/>
        <h:outputText value="#{page1Controller.value}"/>
        <br/>
        <p:commandButton value="Trigger Message" 
                         actionListener="#{page1Controller.triggerMessage}"/>  
   </h:form>
Run Code Online (Sandbox Code Playgroud)

jsf message pageload postconstruct

19
推荐指数
1
解决办法
1万
查看次数

标签 统计

jsf ×1

message ×1

pageload ×1

postconstruct ×1