模板(jsf)工作不正常.当我覆盖这些元素时,它们不会出现在页面上



我已经完成了三个步骤的模板:

首先,我创建了一个xhtml文件,其中包含所有页面通用的内容:

AllComponentsTemplate.xhtml

<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:h="http://xmlns.jcp.org/jsf/html"
 xmlns:f="http://xmlns.jcp.org/jsf/core"
   xmlns:ui="http://java.sun.com/jsf/facelets">
<head>
    <title>State Transport Department- Work Schedule</title>
    <meta name="viewport" content="width=device-width"/>
    <link  rel="stylesheet" type="text/css" href="../../CSS/CompleteTemplateCSS.css"/>
    <link  rel="stylesheet" type="text/css" href="../../CSS/templateCSS.css"/>
</head>
<body>
    <div class="container">
        <div class="header"></div>
        <div class="menu">
<h:outputLabel  class="welcomeNote" value="#{welcomeBean.fullname}" />
         <ul class="ulForMyAccount"><li> <h:outputLabel value="My Account" id="mainAnchor"/>
                            <ul ><li> <a href="/webpages/ChangePasswordxhtml.xhtml"    id="subAnchor"  >Change my Password</a>  </li> </ul></li></ul> </div>
<div class="contentBody">
            <div class="menuTable">
                        <table class="templateBody" >
                            <tr>
                                <td class="navigationLink" > <ul><li>
                                            <h:link  value="Home" outcome="/webpages/NewWelcome.xhtml"  rendered="#{welcomeBean.home}" class="mainLinks"/> 
                                        </li></ul> </td>
                            </tr>  </table>   </div>   </div>
   <div class="footer"></div>
    </div>  </body> </html>

然后我创建了一个MainTemplate.xhtml页面,我将在其他页面中使用它作为模板:

<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:h="http://xmlns.jcp.org/jsf/html"
 xmlns:f="http://xmlns.jcp.org/jsf/core"
   xmlns:ui="http://java.sun.com/jsf/facelets">
<f:view>
    <h:head>
        <title>State Transport Department-Work Schedule</title>                
    </h:head>
    <h:body>
         <ui:include src="AllComponentsTemplate.xhtml"/>
         <ui:insert name="informationBody"></ui:insert>
     </h:body> </f:view> </html>

然后我将此模板添加到我的第一个页面Trial.xhtml

 <ui:composition xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:h="http://xmlns.jcp.org/jsf/html"
                 xmlns:f="http://xmlns.jcp.org/jsf/core"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 template="/webpages/templates/CompleteTemplate.xhtml">
    <ui:define name="informationBody">
        <h:form>
              <h:commandButton id="allocateButton" value="Test Submit" action="#{empDutySchedBean.testMethod}"/>
        </h:form>
    </ui:define>
</ui:composition>

注意:trial.xhtml没有html、head、body标记。

问题:直到MainTemplate.xhtml页面,包括链接等在内的所有组件都是完全可见的但是在将模板包含到Trial.xhtml页面后,没有出现我的帐户欢迎标签、主页导航链接。

除此之外,我为网页的背景颜色应用的所有css都出现了。

我不知道为什么。我们将不胜感激。我是编码的初学者。

谢谢!:)

也将AllComponentsTemplate.xhtml定义为ui:composition,它不需要htmlheadbody,并且由于AllComponentsTemplate.xhtml将被包括在内,因此不需要添加template属性或define部分。

如果我是你,我会用htmlh:headh:body等设置AllComponentsTemplate.xhtml作为它自己的主模板,并让Trial.xhtml实现它。稍后,如果您需要另一个页面来拥有共享视图,您可以继续创建AnotherComponentsTemplate.xhtml并让它们实现它。

请参阅此链接,它将帮助您入门。

http://www.mkyong.com/jsf2/jsf-2-templating-with-facelets-example/

考虑到你的问题,使用h:head和h:body作为所有html标签,正如Najjar在回答中所说的那样。

相关内容

  • 没有找到相关文章

最新更新