如何使用h:commandLink在新窗口NOT选项卡中打开页面



使用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();   

相关内容

  • 没有找到相关文章

最新更新