0

我有这个问题:我有大约 5 个页面(可能更多......)和一个登录页面,您可以随时从您所在的任何页面导航到您想要的任何页面(登录除外)。所以我做了一个模板。我有一个

<p:layoutUnit position="north">

在所有页面(登录除外)中,在北部,南部和西部各有一个。west layoutunit 有一个menu page1, page2 ... pageN,南北一直都是一样的。所以我所做的是使用

<ui:include src="norte.xhtml" />

在北部布局单元中,对南部和西部布局单元执行相同操作。但问题是我可以从任何页面导航到任何页面,那么我该如何管理这种导航情况?我是否必须为所有可能的导航情况创建导航规则?

请帮我。我想让这个动态。我正在使用 JavaEE 7、JSF 2.2 和 PrimeFaces 4.0 和 Netbeans。我想以最正确的方式做到这一点。

我必须使用转发重定向,我该怎么做?

这是菜单代码:

<h:body>
        <ui:composition>
            <p:menu>
                <p:menuitem value="Inicio" action="page1" />
                <p:menuitem value="Altas / Entradas" action="page2" />
                <p:menuitem value="Modificar Refacciones" action="page3" />
                <p:menuitem value="Consultar" action="page4" />
            </p:menu>
        </ui:composition>
    </h:body>
  • 感谢您的帮助:)

4

1 回答 1

0

你需要使用:

<ui:insert name="content"/>

在模板中..比您要使用的每个页面都需要包装的模板

<ui:composition template="/yourpath/yourtemplatePage"/>
     <ui:define name="content">
     bla bla
     <ui:define/>
<ui:composition/>

这是 jsf 模板的基本解释 http://www.mkyong.com/jsf2/jsf-2-templating-with-facelets-example/

还有一个: http ://courses.coreservlets.com/Course-Materials/pdf/jsf/jsf2/JSF2-Facelets-Templating.pdf

希望有所帮助:)。

编辑:

我将在这里提供更多信息:假设您有以下页面:index.jsf、page1.jsf、page2.jsf。

您需要使用菜单创建模板,例如:template.jsf:

 <h:body>
   <p:menu>
     <p:menuitem value="Inicio" action="/appname/index?faces-redirect=true" />
     <p:menuitem value="Altas / Entradas" action="/appname/page1" />
     <p:menuitem value="Modificar Refacciones" action="/appname/page2" />
   </p:menu>
   <ui:insert name="pageContent"/>
 </h:body>

如您所见,我添加了 ?faces-redirect=true,这将用重定向替换转发。您可以在想要重定向而不是转发时执行此操作。现在以 index.jsf 为例:

<ui:composition template="/appname/template.xhtml"/>
     <ui:define name="contentPage">
        i am index page
     <ui:define/>
<ui:composition/>

page1、page2 也是如此,只是它们的内容会发生变化。

现在所有页面都将包含相同的菜单。菜单将仅在模板中定义。当您可以在应用程序中找到页面的路径时,它将起作用

于 2014-05-22T22:39:36.080 回答