【发布时间】:2016-04-05 22:30:28
【问题描述】:
我正在使用 PF 5.3 和 JSF 2.2
我有一个全局 p:growl 将在 backBean 中更新,问题是每当我更新全局 p:growl 时,其他 p:message 也会使用相同的数据进行更新。我想要一种方法只更新后台bean中action方法中的全局咆哮,其他p:messages不应该更新。
xhtml:
<h:body>
<p:growl id="growlGeneralMessages" showDetail="true" sticky="true" globalOnly="true" />
<h:form id="register_new_student" enctype="multipart/form-data" >
<p:messages autoUpdate="true" />
<p:commandButton id="new_student_action" value="Add" update="register_new_student_panel" validateClient="true" action="#{teacherPresentation.newStudentAction()}" />
</h:form>
</h:body>
回豆:
public String newStudentAction() {
FacesContext context = FacesContext.getCurrentInstance();
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Wrong username or password!", "");
context.addMessage(null, message);
context.getExternalContext().getFlash().setKeepMessages(true);
return "teacher.xhtml?faces-redirect=true";
}
我尝试了两件事,但没有成功:
1- 从 p:messages 中删除属性 autoUpdate(失败)
2-在addMessage方法中指定客户端id
context.addMessage(null, message); --> context.addMessage("growlGeneralMessages", message); (也失败了)
【问题讨论】:
标签: jsf jsf-2 primefaces