我刚刚了解到我可以创建一个主模板,我可以使用xhtml
,jsf
和ui:insert
替换不同的其他ui:define
ui:include src
页面我在网上进行了一些研究并尝试显示合并的页面。
但是,我无法使用其他内容定义命名的ui:insert
内容块(我想在用户访问时使用register.xhtml页面。注册页面)
的template.xhtml
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
>
<h:head>
<h:outputStylesheet name="css/bootstrap.css" />
<h:outputStylesheet name="css/font-awesome.css"/>
<h:outputStylesheet name="css/mywebsite.css"/>
<h:outputScript name="js/jquery-3.1.1.js"/>
<h:outputScript name="js/bootstrap.js"/>
</h:head>
<h:body>
<div id="page">
<div id="header">
<ui:insert name="header">
<ui:include src="header.xhtml"/>
</ui:insert>
</div>
<div id="content">
<!--content container-->
<ui:insert name="content">
<ui:include src="content.xhtml" />
</ui:insert>
</div>
<div id="footer">
<!--footer container-->
<ui:insert name="footer">
<ui:include src="footer.xhtml" />
</ui:insert>
</div>
</div>
</h:body>
</html>
header.xhtml
<ui:composition
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<h1>Default Header</h1>
</ui:composition>
content.xhtml
<ui:composition
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
>
<h1>Default Content</h1>
</ui:composition>
footer.xhtml
<ui:composition
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<h1>Default Footer</h1>
</ui:composition>
register.xhtml
<ui:composition
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<h1>I AM REGISTER</h1>
</ui:composition>
我希望能够做的是在用户转到register.xhtml
时将{strong>内容块替换为localhost:8080/mywebsite/register.xhtml
我想替换default content
div
。仅当用户转到注册页面(localhost:8080/mywebsite/register.xhtml
),但保留标题和页脚。
我希望你能提供帮助。
谢谢。
答案 0 :(得分:1)
您的register.xhtml应该是这样的:
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
template="/WEB-INF/templates/template.xhtml">
<ui:define name="content">
<h1>I AM REGISTER</h1>
</ui:define></ui:composition>
您必须在template="/WEB-INF/templates/template.xhtml"
标记中添加ui:composition
,并将实际内容覆盖为
<ui:define name="content">
<h1>I AM REGISTER</h1>
</ui:define>