Открыть дополнительную ссылку в действии commandLink - PullRequest
0 голосов
/ 12 марта 2020

У меня есть следующая 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 -страница (go_PrintOrderCards). URL в новом окне будет открыт. Но новая jsp -Page для go_PrintOrderCards не будет показана.

Может кто-нибудь помочь мне, как я могу решить эту проблему?

1 Ответ

0 голосов
/ 16 марта 2020

Что вы можете сделать:

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+"')");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...