異なる場所に表示する 3 つの ui:insert タグを含むテンプレートがあります。私の作成ユーザーページには、これがあります:
<ui:composition template="/template.xhtml">
<ui:define name="title">
<h:outputText value="#{bundle.CreateEmployeesTitle}"></h:outputText>
</ui:define>
<ui:define name="body">
<h:panelGroup id="messagePanel" layout="block">
<h:messages errorStyle="color: red" infoStyle="color: green" layout="table"/>
</h:panelGroup>
<h:form>
<h:panelGrid columns="2">
<h:outputLabel value="#{bundle.CreateEmployeesLabel_businessUnitId}" for="businessUnitId" />
<h:selectOneMenu id="businessUnitId" value="#{employeesController.selected.businessUnitId}">
<f:selectItems value="#{businessUnitController.items}" var="a" itemLabel="#{a.description}" itemValue="#{a.id}" />
</h:selectOneMenu>
<h:outputLabel value="#{bundle.CreateEmployeesLabel_employeeTypesId}" for="employeeTypesId" />
<h:selectOneMenu id="employeeTypesId" value="#{employeesController.selected.employeeTypesId}">
<f:selectItems value="#{employeeTypesController.items}" var="b" itemLabel="#{b.description}" itemValue="#{b.id}" />
</h:selectOneMenu>
<h:outputLabel value="#{bundle.CreateEmployeesLabel_employeeManagersEmployeeNo}" for="employeeManagersEmployeeNo" />
<h:selectOneMenu id="employeeManagersEmployeeNo" value="#{employeesController.selected.employeeManagersEmployeeNo}">
<f:selectItems value="#{employeeManagersController.items}" var="c" itemLabel="#{c.name}" itemValue="#{c.employeeNo}" />
</h:selectOneMenu>
</h:panelGrid>
<ui:define name="li1">
<h:commandLink action="#{employeesController.create}" value="#{bundle.CreateEmployeesSaveLink}" styleClass="auto-style4" />
</ui:define>
<ui:define name="li2">
<h:commandLink action="#{employeesController.prepareList}" value="#{bundle.CreateEmployeesShowAllLink}" immediate="true" styleClass="auto-style4"/>
</ui:define>
</h:form>
</ui:define>
</ui:composition>
したがって、リンクはレンダリングされませんが、下部の ui:define タグを削除すると機能します。この方法が必要な理由は、コマンドリンクが右側の列に表示されるためです。コマンドリンクが右側の列で引き続き機能するように、ui:define を何に置き換えることができますか?
これが私のテンプレートの例です:
<h:body>
<div id="header-wrapper">
<div class="container">
<div class="row">
<div class="12u">
<header id="header">
<h1><a href="#" id="logo" ><img src="../resources/images/btttr.png" alt="logoo" class="left" /></a></h1>
<nav id="nav">
<ui:insert name="heads"></ui:insert>
</nav>
</header>
</div>
</div>
</div>
</div>
<div id="main">
<div class="container">
<div class="row main-row">
<div class="8u">
<section class="left-content">
<div>
<ui:insert name="pagetitle">Default Title</ui:insert>
<br/>
<br/>
</div>
<ui:insert name="body">Default Body</ui:insert>
</section>
</div>
<div class="4u">
<section>
<ul class="small-image-list">
<li>
<li>
<ui:insert name="li1"></ui:insert></li>
<li>
<ui:insert name="li2"></ui:insert></li>
<li>
<ui:insert name="li3"></ui:insert></li>
<li>
<ui:insert name="li4"></ui:insert></li>
<li>
<ui:insert name="li5"></ui:insert></li>
</li>
</ul>
</section>
</div>
</div>
</div>
</div>
</h:body>