模板内容不显示

Template content not displaying

我创建了一个名为 Template.xhtml 的基本 JSF 模板。该模板随后被页面 TestPage.xhtml 使用。在我的 TestPage.xhtml 中,我只使用了 <ui:define> 标签来覆盖页面标题。因此,我希望模板的其余内容显示相同。但是,仅显示模板的 header 和页脚。

Template.xhtml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html> 

<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"
    xmlns:ace="http://www.icefaces.org/icefaces/components"
    xmlns:icecore="http://www.icefaces.org/icefaces/core"
    xmlns:ice="http://www.icesoft.com/icefaces/component"
    >

<h:head>
<title><ui:insert name="title"></ui:insert></title>
<link href="#{request.contextPath}/resources/css/Template.css" rel="stylesheet"/>

</h:head>

<h:body>

<header id ="header">
<ui:insert name="header">
<h1>OAG Reference Data</h1>
</ui:insert>
</header>



<section id="container">
<ui:insert>

<section id="sidebar">
<ui:insert name="sideBar">
<h:form>
<ace:menu type="sliding" zindex="2">
    <ace:submenu label="Carrier">
        <ace:menuItem value="General Carrier Data" />
        <ace:menuItem value="Contact Info" />
        <ace:menuItem value="Alliance Membership" />
    </ace:submenu>
</ace:menu>
</h:form>
</ui:insert>
</section>

<section id="content">
<ui:insert name="content">
<h1>Content</h1>

</ui:insert>
</section>

</ui:insert>
</section>


<footer id ="footer">
<ui:insert name="footer">
<h1>Footer#{bundle['application.defaultpage.footer.content']}</h1>
</ui:insert>
</footer>



</h:body>
</html>

TestPage.xhtml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:icecore="http://www.icefaces.org/icefaces/core"
    xmlns:ace="http://www.icefaces.org/icefaces/components"
    xmlns:ice="http://www.icesoft.com/icefaces/component">

<ui:composition template="WEB-INF/templates/Template.xhtml">

<ui:define name="title">
Test Title
</ui:define>

<ui:define name="content">
Test Content
</ui:define>


</ui:composition>

</html>

有谁知道为什么页脚和 header 部分显示为模板的一部分,但为什么其他内容和侧边栏部分没有显示(尽管我没有覆盖它们)。

谢谢。

您需要在 "container" 部分中输入 <ui:insert name="Container"> 而不是 <ui:insert>

内容未显示,因为ui插入标签没有名称 所以你不能参考它。