我想将来自不同文件的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>
有没有办法完成这项任务?
答案 0 :(得分:2)
这没有意义。您不允许在单个Facelet文件中使用语法无效的XML。此外,您不能通过<ui:include>
或任何<ui:xxx>
标记添加普通的HTML。那些必须是真正的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>
Note that <h:outputLabel>
serves an entirely different purpose
答案 1 :(得分: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