在 commandLink 操作中打开额外的 link
Open additional link in commandLink action
我有以下命令链接:
<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";
}
那里我想在新的Window中打开一个URL。在 Action 之后应该打开一个 jsp-Page (go_PrintOrderCards
)。
新的window中的URL会被打开。但是 go_PrintOrderCards
的新 jsp 页面将不会显示。
谁能帮帮我,我该如何解决?
您可以做的是:
1) 将 printOrderCards
方法的 return 类型更改为 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+"')");
我有以下命令链接:
<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";
}
那里我想在新的Window中打开一个URL。在 Action 之后应该打开一个 jsp-Page (go_PrintOrderCards
)。
新的window中的URL会被打开。但是 go_PrintOrderCards
的新 jsp 页面将不会显示。
谁能帮帮我,我该如何解决?
您可以做的是:
1) 将 printOrderCards
方法的 return 类型更改为 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+"')");