2

有没有办法将 html 文件的内容插入到 Facelet 模板中?Facelets 标签将不起作用,因为它仅用于包含 Facelet 内容。

换句话说,我正在寻找与 JSP 包含指令等效的 Facelets <%@ include file="..." %>

4

4 回答 4

4

我可能不明白您需要什么,但<ui:include>不限于 facelets 内容,您可以根据此链接插入有效的 xhtml 。

考虑以下 facelets 文件 (test.jsp):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core">

    <body>
        <f:view>
            <h:outputText value="Text outside include"/>
            <ui:include src="testinclude.html"/>
        </f:view>
    </body>
</html>

以及以下 HTML 文件 (testinclude.html):

<h2>Text from included page</h2>

它正确地包含页面中的 HTML 内容。这也适用<ui:include>于在 facelets 模板中使用时。

于 2009-09-29T08:40:37.223 回答
1

Facelets 中唯一的包含机制是 ,它不允许包含任意内容,只能包含格式良好的 XML。Facelets 中没有与 JSP 包含指令等效的指令。

于 2009-10-05T21:17:54.640 回答
1

这描述了一个解决方案:http ://arjan-tijms.omnifaces.org/2010/04/facelets-and-legacy-jsp.html

该解决方案包括构建一个简单的 UI 组件,该组件将 JSP 或 Servlet 内容加载到字符串中,并通过正常的响应编写器呈现。

于 2010-05-02T21:50:33.397 回答
1

Omnifaces<o:resourceInclude>可用于将任意内容直接包含到响应中。这意味着它不必像 .xml 那样是格式良好的 xml <ui:include>。您还可以在<h:head>JSF 页面的部分中包含内容,否则很难实现。

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

于 2015-11-04T18:49:46.687 回答