我正在使用jboss,seam,richfaces开发一个Web应用程序。
我正在使用模板(xhtml)作为所有其他人的母版页,并且我设置了两个插入标记。 <ui:insert name="head"/>
<ui:insert name="body"/>
问题是,在使用此母版页作为模板的网页中,必须在<ui:define name="head">...</ui:define>
内定义<ui:define name="body">...</ui:define>
。
我该怎么做?
基本上,我想要的是做以下事情:
<ui:define name="body">... <ui:define name="head"> <meta name="title" content="#{something.title}" /> </ui:define> ...</ui:define>
母版页必须在<meta name="title" content="#{something.title}" />
<ui:insert name="head"/>
提前致谢
答案 0 :(得分:1)
我不认为facelets是这样的。它编译并读取模板。
所以我认为你可以定义你想要的定义数量,而不关心嵌套。
即:
//In your template.xhtml
<ui:insert name="outer">
BLA BLA BLA
<ui:insert name="inner"/>
BLA BLA BLA
</ui:insert>
当你想简单地使用这个模板时:
<ui:define name="outer">
Here you can overwrite outer (This will probably overwrite inner, not sure, you need to test it)
</ui:define>
<ui:define name="inner">
Or you can ONLY overwrite inner here if you want
</ui:define>
答案 1 :(得分:0)
您可以使用<ui:param>
在每个页面上定义content
。例如
在模板中:
<meta name="title" content="#{titleParam}" />
在使用模板的页面中:
<ui:param name="titleParam" value="customValueForThisPage" />