如何在jsf中导航到很多页面

时间:2014-05-22 21:20:40

标签: java jsf primefaces navigation faces-config

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

<p:layoutUnit position="north">

在北方,另一个在南方,另一个在西方在所有页面中(登录除外)。西部layoutunit有一个菜单,其中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>
  • 感谢您的帮助:)

1 个答案:

答案 0 :(得分:0)

您需要使用:

<ui:insert name="content"/>
模板中的

..比你想要使用模板的每个页面都要包装

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

这是jsf templatingL的基本解释 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上,只会更改其内容。

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