我正在尝试使用glassfish和eclipse进行Primefaces 3.
我想在创建或输入用户详细信息时使用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>
Run Code Online (Sandbox Code Playgroud)
..单击我的保存按钮时,执行此代码.
public class MyBean{
public void save(ActionEvent event) {
try{
myEJB.addMember(newMember);
//how to show message
}catch(Exception e){
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
添加成功后,如何向用户显示对话框弹出消息.
我尝试使用此代码,但这不显示,对话框被解除.
FacesMessage facesMessage = new FacesMessage("Successful add!");
FacesContext.getCurrentInstance().addMessage(null, facesMessage);
Run Code Online (Sandbox Code Playgroud)
我以为这是一个ajax提交所以一切都被清除了.
我想我必须在oncomplete期间执行一些代码,但我不知道该怎么做?
您应该从ajax请求更新消息标记.
假设您的页面上有这样的全局消息标记:
<h:messages id="msg"/>
Run Code Online (Sandbox Code Playgroud)
由于它不在对话框的表单中,因此需要在具有绝对id 的update属性中对其进行寻址p:commandButton:
<p:commandButton value="Save"
actionListener="#{myBean.save}"
oncomplete="dlg1.hide()"
update=":msg" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7471 次 |
| 最近记录: |