在Facelets页面中包含一个JSP页面

时间:2012-12-31 12:03:21

标签: jsp jsf include facelets

如何在Facelets页面中包含JSP页面?

mypage.xhtml

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html">

    <h:head>
        <meta charset="utf-8"></meta>
        <link href="css/bootstrap.css" rel="stylesheet"></link>
    </h:head>

    <h:body>


    </h:body>
</html>

header.jsp

<div class="navbar navbar-inverse navbar-fixed-top">
      <div class="navbar-inner">
            <div class="container">
                <div class="nav-collapse collapse">
                    <ul class="nav">
                        <li><a href="index.xhtml">Home</a></li>
                        <li><a href="login.xhtml">Login</a></li>
                    </ul>
                </div>
            </div>
        </div>
    </div>

2 个答案:

答案 0 :(得分:3)

Facelets没有内置支持包含JSP文件。 JSP是一种弃用的视图技术,Facelets基本上是它的继承者。由于不推荐使用JSP,您不应该期望它有任何支持计划。

只需将header.jsp重命名为header.xhtml并消除任何特定于JSP的工件。 JSP中没有任何东西对JSF / Facelets来说是“不可能的”。

作为一种临时手段,您可以使用OmniFaces <o:resourceInclude>标记在Facelets中嵌入JSP / Servlet页面的输出。请注意,它就像<c:import>的工作原理一样,只能用于静态内容。

另见:

答案 1 :(得分:1)

使用OmniFaces http://omnifaces.org

你可以这样使用它

<o:resourceInclude path="/someJSPpage.jsp" />

参考:

http://showcase.omnifaces.org/components/resourceInclude