如何使用一个命令按钮打开多个URL

时间:2018-03-28 13:43:30

标签: jsf primefaces commandbutton

所有

我在JSF / Jave / Primefaces工作。

当用户点击命令按钮时,我想抓住盒子编号并同时打开两个不同的URL,这将为最终用户提供两个不同的文件供下载。

我已经尝试了很多建议,到目前为止,我一直没有成功。如果可能的话,我宁愿不使用JS,但我愿意接受建议。

我尝试重复URL构建并再次调用,但这不起作用。

感谢您的任何建议!

克里斯蒂娜

JSF:

<p:commandButton value="Open / Print Documentation" icon="fa fa-folder-open"
                                                     id="ajax" style="height:40px;" update="growl"
                                                     rendered='#{userManager.hasRole("RecordsManagementEndUsers")}'
                                                     actionListener="#{dashboardView.openPdf}">
                                    </p:commandButton>

爪哇:

    public void openPdf(ActionEvent actionEvent) {
    String response = confirmBoxId(boxNumber);

    if (response == "in system") {

        ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();

        String url =
            "http://linkGoesHere.xdo?_xpt=1&_xf=pdf&rec_num=" +
            boxNumber + "&_xt=CM_RECTRANS";
        try {
            FacesContext.getCurrentInstance()
                        .getExternalContext()
                        .redirect(url);
        } catch (IOException e) {
            e.printStackTrace();
        }
    } else {
        addMessageWarn("Box number " + boxNumber + " was not found in the system. Please try again.");
    }
}

第二个URL就是这样的:

"http://linkGoesHere.xdo?_xpt=1&_xf=pdf&rec_num=" + boxNumber + "&_xt=labels";

1 个答案:

答案 0 :(得分:0)

到目前为止,我已经将这项工作付诸实施,而另一方面却有一些问题,我必须完成这项工作(下文提及)。

我继续使用onclick打开两个网址:

<p:commandButton value="Open / Print Documentation" icon="fa fa-folder-open"
     id="ajax" style="height:40px;" update="growl"
     rendered='#{userManager.hasRole("RecordsManagementEndUsers")}'
     onclick = "window.open('http://linkGoesHere.xdo?_xpt=1&amp;_xf=pdf&amp;rec_num=' + #{dashboardView.boxNumber} + '&amp;_xt=labels');
     window.open('http://linkGoesHere.xdo?_xpt=1&amp;_xf=pdf&amp;rec_num=' + #{dashboardView.boxNumber} + '&amp;_xt=CM_RECTRANS');">

它成功打开了两个链接,但现在我需要确定一种方法来验证何时找不到盒号,这是我以前在Java端做的。

因此,在我的情况下,它可能不是一个永久的解决方案,但它是一个有效的解决方案,假设传递的值将始终生成工作链接。