В режиме поддержки bean @PostConstruct я делаю вызов EJB, который может возвращать некоторые сообщения, которые я хочу отображать на странице, через сообщения p:. Однако, даже если я добавлю FacesMessages, например. FacesContext.getCurrentInstance(). AddMessage (...), p: сообщения не обновляются с помощью FacesMessages.
Если я вместо этого вызываю вызов EJB на действие со страницы (например, пользователь нажимает кнопку на странице, которая вызывает метод, который вызывает EJB, а затем добавляет FacesMessage (s)), а затем показывает messags используя сообщения p: как ожидалось.
Как добавить сообщения Faces во время @PostConstruct и показать их, когда страница первоначально отображается?
код:
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"));
}
}
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>