如何在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>
Facelets不支持包含JSP文件。JSP是一种过时的视图技术,而Facelets基本上是它的继承者。由于JSP已弃用,您不应该期望有任何支持它的计划。
只需将header.jsp
重命名为header.xhtml
并消除任何特定于JSP的工件。在JSP中没有什么是"不可能的"JSF/Facelets .
作为临时手段,您可以使用OmniFaces <o:resourceInclude>
标记在Facelets中嵌入JSP/Servlet页面的输出。请注意,这就像<c:import>
的工作原理一样,它只适用于静态内容。
参见:
- 如何使用JSF 2.0 Facelets在XHTML中包含另一个XHTML ?
使用OmniFaces http://omnifaces.org
你可以这样使用
<o:resourceInclude path="/someJSPpage.jsp" />
参考:http://showcase.omnifaces.org/components/resourceInclude