0

我对使用 JSF 很陌生,我不确定这是否是正确的方法,但在 Rails 中,您通常有一个主应用程序文件,当前页面加载到该文件中。这样我就不必担心每次都复制粘贴菜单等。

如何使用 JSF 2 实现这一目标?我可以每次都导航到同一个主页并告诉它加载当前内容吗?或者我是否告诉我导航到的当前页面以加载“内容周围的主框架”?

谢谢!

4

2 回答 2

3

是的,当然,JSF 2.0 具有页面模板功能。您定义了一个模板,该模板定义了所有视图页面的通用布局。

用于创建基本页面的 Facelets 标签:

  • ui:insert – 定义将被加载模板的文件替换的内容;
  • ui:define – 定义插入标签的内容ui:insert
  • ui:include – 包含来自另一个页面的内容;
  • ui:composition – 如果与模板属性一起使用,则加载指定的模板,并且此标记的子级定义模板布局。在其他情况下,它是一组元素,可以插入到某处。

例如:

<ui:composition
     xmlns="http://www.w3.org/1999/xhtml"
     xmlns:ui="http://java.sun.com/jsf/facelets"
    template="/templates/myLayout.xhtml">

   <ui:define name="menu">
      <ui:include src="/mypath/menu.xhtml"/>
   </ui:define>

   <ui:define name="content"> 
     <ui:include src="/mypath/content.xhtml"/>           
   </ui:define>

</ui:composition>

或者

<ui:insert name="content">
   <ui:include src="/mypath/mycontent.xhtml"/>
</ui:insert>
于 2012-05-02T08:18:44.250 回答
1

JSF 不支持您要归档的内容。相反,它支持视图和基本布局(模板)。你需要这个:

<?xml version="1.0" encoding="UTF-8"?>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
template="path/to/template.xhtml>

<your custom content here/>
<ui:composition/>
于 2012-05-02T08:16:21.533 回答