我正在尝试使用glassfish和eclipse进行Primefaces。
我想在创建或输入用户详细信息时使用Primefaces Dialog。 例如,假设在一个页面中,我有一个Create按钮,单击该按钮会显示该对话框。
<p:dialog id="dialog" widgetVar="dlg1">
<h:form id="addMemberForm">
<!-- More code here -->
<f:facet name="footer">
<p:commandButton value="Save"
actionListener="#{myBean.save}"
oncomplete="dlg1.hide()" />
</f:facet>
</p:panelGrid>
</h:form>
</p:dialog>
..点击我的保存按钮后,执行此代码。
public class MyBean{
public void save(ActionEvent event) {
try{
myEJB.addMember(newMember);
//how to show message
}catch(Exception e){
e.printStackTrace();
}
}
}
如果添加成功,如何向用户显示对话框弹出消息。
我尝试使用此代码,但这并未显示,对话框也被解除了。
FacesMessage facesMessage = new FacesMessage("Successful add!");
FacesContext.getCurrentInstance().addMessage(null, facesMessage);
我在想这是一个ajax提交,所以一切都被清除了。
我认为我必须在完成期间执行一些代码,但我不知道该怎么做?
答案 0 :(得分:7)
您应该从ajax请求更新消息代码。
假设您的页面上有这样的全局消息标记:
<h:messages id="msg"/>
由于它不在对话框的表单中,因此您需要在update
的{{1}}属性中使用绝对ID来处理它:
p:commandButton