使用Primefaces 4.0和JSF 2.2。
我想将访问者发送到新窗口中的页面(而不是选项卡)。登录页面是一个名为grade.xhtml
的jsf页面
我试过了:
<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版本。
试试这个:
<h:commandLink value="OK" action="grade.xhtml" target="_blank"/>
这里有一个例子:当我点击任何链接时,它应该在JSF的同一个新窗口中打开,Primefaces
我为此使用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>
您可以根据需要更改参数;)
在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();