使用Primefaces 4.0和JSF 2.2。
我想将访问者发送到新窗口中的页面(而不是标签页)。着陆页是一个名为grade.xhtml
我试过了:
<h:commandLink value="OK" onclick="window.open('grade.html', 'newwindow','width=300, height=300'); return false;"/>
这达到了404.显然,这一切都在客户端发生,因此grade.html不会从grade.xhtml
生成。我该怎么办?
注意:如果我放onclick="window.open('grade.xhtml', 'newwindow','width=300, height=300'); return false;"
,那么页面就会打开,但它是jsf(xhtml代码)而不是html版本。
答案 0 :(得分:3)
试试这个:
<h:commandLink value="OK" action="grade.xhtml" target="_blank"/>
在此处查看示例:When i click on any link it should Open in the same New Window in JSF, Primefaces
答案 1 :(得分:2)
我使用javaScript来试试吧:
<script type="text/javascript" language="javascript">
function funcForWindowPopup()
{
var popup = null;
popup = window.open("grade.xhtml", "popup", "toolbar=no,menubar=no,scrollbars=yes,location=no,left=350,top=50,width=650, height=600");
popup.openerFormId = "formID";
popup.focus();
}
</script>
您可以根据需要更改参数;)
答案 2 :(得分:0)
从JSF控制器打开新窗口中的URL。
HttpServletResponse res = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
HttpServletRequest req = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
String uri = req.getRequestURI();
res.getWriter().println("<script>window.open('" + myUrl + "','_blank', 'location=yes,height=600,width=800,scrollbars=yes,status=yes'); window.parent.location.href= '"+uri+"';</script>");
FacesContext.getCurrentInstance().responseComplete();