模板内容不显示
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插入标签没有名称
所以你不能参考它。
我创建了一个名为 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插入标签没有名称 所以你不能参考它。