我的 <ui:define name= "content" > 标记的内容没有出现在 JSF 视图中



我正在使用JSF/Facelets和样式表来装饰我的JSF视图。我想在视图XHTML的内容中添加一些图形组件(例如:"h:inputText"one_answers"h:commandButton"标记),但这无法实现,我不知道为什么!唯一出现的部分是我的模板"template.html"的页眉和页脚。

不管怎样,这是我的"styles.css":

body { width: 750px; }
#header 
{
   width:              100%;
   font-size:          36px;
   font-weight:        bold;
   line-height:        48px;
   background-color:   navy;
   color:              white;
}
#footer
{
   width:              100%;
   font-weight:        bold;
   background-color:   navy;
   color:              white;
}

这是主模板"template.html",包括"Header.html"one_answers"Footer.html",我用标签把我的"styles.css"放在那里

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets">
 <h:head>
      <h:outputStylesheet name="css/styles.css" />      
 </h:head>
 <h:body>
 <h:panelGroup id="page" layout="block">
 <h:panelGroup id="header" layout="block">
    <ui:insert name="header">
        <ui:include src="Header.html" />
    </ui:insert>
 </h:panelGroup>
 <h:panelGroup id="container" layout="block">
    <h:panelGroup id="content" layout="block">
        <ui:insert name="content"></ui:insert>
    </h:panelGroup>
 </h:panelGroup>
 <h:panelGroup id="footer" layout="block">
    <ui:insert name="footer">
        <ui:include src="Footer.html" />
    </ui:insert>
 </h:panelGroup>
 </h:panelGroup>
 </h:body>
 </html>

Anf最后是我的"Main.xhtml",其中包括模板"template.html":

 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:a4j="http://richfaces.org/a4j" xmlns:rich="http://richfaces.org/rich" template="Template.html">
 <h:body>
 <ui:define name="content">
    <h:form>
        <h:inputText title="inputText"></h:inputText>
        <h:commandButton value="OK"></h:commandButton>
    </h:form>
 </ui:define>
 </h:body>
 </ui:composition>

提前感谢:)

您已经在您的合成中定义了一个看起来像的h:body。

这里有一个类似问题的链接。如何包含另一个-xhtml-in-xhtml-using-jsf-2-0-facelets

最新更新