0

我想将来自不同文件的 html 代码包含到我的main.xhtml页面中。但这不适用于<ui:include>. 因为代码被分隔到不同的文件中,这使得每个文件都有无效的 html 代码。

我的意思是说:

html1.html

<div>

html2.html

</div>

main.xhtml

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:p="http://primefaces.org/ui">

INCLUDE HTML1

<h:outputLabel value="blablabla" />

INCLUDE HTML2

</ui:composition>

有没有办法完成这个任务?

4

2 回答 2

2

这没有意义。不允许在单个 Facelet 文件中包含语法无效的 XML。此外,您不能包含普通的普通 HTML via<ui:include>或任何<ui:xxx>标签。这些必须是真正的 Facelet 组合(因此是语法上有效的 XML)。

我收集到您想控制包含模板的正文。在这种情况下,将它们放在一个模板文件中,其中一个<ui:insert>代表您要插入正文的位置:

<ui:composition
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://java.sun.com/jsf/facelets"
>
    <div>
        <ui:insert/>
    </div>
</ui:composition>   

然后,使用<ui:decorate>它:

<ui:decorate template="html.xhtml">
    <h:outputText value="blablabla" />
</ui:decorate>

请注意,<h:outputLabel>它的用途完全不同

也可以看看:

于 2015-03-19T10:56:39.317 回答
1

将您的代码分成更多文件,如下所示:

include file1_before_div
<div>
include file1_after_div
<h:outputLabel value="blablabla" />
include file2_before_div_close
</div>
include file2_after_div_close
于 2015-03-19T10:55:48.767 回答