在commandLink操作中打开附加链接

问题描述 投票:0回答:1

我有以下commandLink:

<h:commandLink action="#{orderForm.printOrderCards}"
    value="Print Document">
</h:commandLink>

ActionHandler如下所示:

public String printOrderCards() {
    try {
        HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext()
                .getResponse();

        PrintWriter out = response.getWriter();
        out.println("<html><body>");
        out.println("<script type=\"text/javascript\">");
        String url = "http://nb200srv2016:8080/obt-documents/Artikel/2050/1007144_Rev.BA.pdf?allowCache=true&openDirectly=true";
        out.println("window.open(\"" + url + "\");");

        out.println("</script>");
        out.println("</body></html>");
        out.flush();
        out.close();
    } catch (final IOException e) {
        e.printStackTrace();
    }
    return "go_printOrderCards";
}

我想在新窗口中打开URL。动作后应打开一个jsp-Page(go_PrintOrderCards)。将在新窗口中打开URL。但是不会显示go_PrintOrderCards的新jsp-Page。

有人可以帮助我,我该如何解决?

jsf
1个回答
0
投票

您可以做的是:

1)像这样将printOrderCards方法的返回类型更改为void:

public void printOrderCards() {

2)删除printOrderCards方法内的所有代码行,并将这些行添加至方法内:

String url = "http://nb200srv2016:8080/obt-documents/Artikel/2050/1007144_Rev.BA.pdf?allowCache=true&openDirectly=true";
RequestContext requestContext = RequestContext.getCurrentInstance();  
requestContext.execute("window.open('"+url+"')");
© www.soinside.com 2019 - 2024. All rights reserved.