Java 使用h:commandButton或p:commandButton打开新窗口/选项卡?

Java 使用h:commandButton或p:commandButton打开新窗口/选项卡?,java,primefaces,Java,Primefaces,要求是在单击按钮时打开一个新窗口/选项卡。新窗口应该重定向到新URL或说是新页面。我尝试了以下代码: <h:commandButton value="Login" onclick="this.form.target='_blank'"/> 但这会再次打开当前页面。如何设置新页面或url以在新窗口/选项卡中打开?尝试以下操作: XHTML: <p:commandButton actionListener="#{backing.popupDlg(row.id)}" imme

要求是在单击按钮时打开一个新窗口/选项卡。新窗口应该重定向到新URL或说是新页面。我尝试了以下代码:

<h:commandButton value="Login" onclick="this.form.target='_blank'"/> 

但这会再次打开当前页面。如何设置新页面或url以在新窗口/选项卡中打开?

尝试以下操作:

XHTML:

<p:commandButton actionListener="#{backing.popupDlg(row.id)}" immediate="true" value="Dialog">
    <p:ajax event="dialogReturn" update="@form" listener="#{backing.refreshPage}" />
</p:commandButton>

支持:

public void popupDlg(Integer id) {
    //USER CODE
    // DO something with ID

    Map<String, Object> options = new HashMap<String, Object>();
    options.put("modal", true);
    options.put("closable", false);
    options.put("draggable", true);
    options.put("resizable", true);
    options.put("contentHeight", 620);

    RequestContext.getCurrentInstance().openDialog("DlgPage", options, null);
}
public void popupDlg(整数id){
//用户代码
//用身份证做点什么
Map options=newhashmap();
期权。看跌期权(“模态”,真);
期权。看跌期权(“可关闭”,假);
期权。看跌期权(“可拖动”,真);
选项。看跌期权(“可调整大小”,真);
期权。看跌期权(“内容高度”,620);
RequestContext.getCurrentInstance().openDialog(“DlgPage”,选项,null);
}

当它在对话框中打开
DlgPage.xhtml
时,这也会处理母版页的对话框返回更新/删除/插入。您的意思是我们将通过actionListener=“#{backing.popupDlg(row.id)}”调用backingbean的editDesignationDlg(整数dsgnId)吗。popupDlg(row.id)只是一个输入错误,它应该是EditDesignOnDlg或它的不同。编辑问题,对我来说,我在p:datatable中使用了它,所以我将row id传递给backing方法。如果你有标准的弹出窗口,你将不需要任何id。你可以使用它的基本思想。很明显,我的要求是在按钮提交时打开一个新的选项卡/窗口,而不是在同一页面上打开一个对话框/弹出窗口。我无法从你分享的东西中得到这种逻辑。