java Primefaces以编程方式将对话框打开为对话框
我可以在primefaces中以编程方式打开一个对话框,如下所示:
Primefaces open closable dialog programmatically
我也可以在我的对话框中打开另一个对话框!但是当我想用这个代码关闭它时,它不会关闭
RequestContext.getCurrentInstance().closeDialog(null);
我不能点击任何东西
只有当我打开两个对话框时才会发生这种情况
索引。xhtml
<p:commandButton value="Open First Dialog" process="@form" update="@form" actionListener="#{mybean.openFirstDialog}"/>
mybean。java
@Component
@Scope("session")
public class MyBean{
public void openFirstDialog() {
RequestContext requestContext = RequestContext.getCurrentInstance();
Map<String, Object> options = new HashMap<>();
options.put("modal", true);
options.put("width", "850");
options.put("contentWidth", "520");
options.put("closable", false);
options.put("resizable", false);
requestContext.openDialog("/page/firstdialog", options, null);
}
}
firstdialog。xhtml
<p:commandButton value="Open Second Dialog" process="@form" update="@form" actionListener="#{firstDialogBean.openSecondDialog}"/>
FirstDialogBean。java
@Component
@Scope("view")
public class FirstDialogBean{
public void openSecondDialog() {
RequestContext requestContext = RequestContext.getCurrentInstance();
Map<String, Object> options = new HashMap<>();
options.put("modal", true);
options.put("width", "850");
options.put("contentWidth", "520");
options.put("closable", false);
options.put("resizable", false);
requestContext.openDialog("/page/seconddialog", options, null);
}
}
第二个对话框。xhtml
<p:commandButton value="Close Second Dialog" process="@form" update="@form" actionListener="#{secondDialogBean.close}"/>
secondDialogBean。java
@Component
@Scope("view")
public class SecondDialogBean{
public void close() {
RequestContext.getCurrentInstance().closeDialog(null);
}
}
实际上,我在关闭对话框时不会传递NULL!我会做一些事情,传递一个物体!但我不能在这里写完整的代码 然后,当我关闭第二个对话框时,我可以在第一个对话框中得到那个对象,然后再做一些事情
我希望我能说出我的意思
点击“关闭第二个对话框”后,它卡住了! 我也试过了,但没用:
RequestContext.getCurrentInstance().closeDialog("/page/seconddialog");
# 1 楼答案
你需要说出你关闭的对话框的名称
有关同时打开两个对话框以及如何关闭它们的信息,请参见this example