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



我有这个问题:我有大约5页(可能更多…)和一个登录页面,你总是可以导航到任何页面,你想从任何页面(除了登录)。所以我做了一个模板。我有一个

<p:layoutUnit position="north">
所有页面(除登录) 均为北

、南

、西。西部布局单元有一个菜单与page1, page2…南北总是一样的。我所做的就是使用

<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>
  • 谢谢你的帮助:)

您需要使用:

<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,这将用redirect代替forward ..当你想重定向而不是转发时,你可以这样做。现在,例如index.jsf:

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

page1,page2也一样,只是它们的内容会改变。

现在所有的页面将包含相同的菜单。菜单将只在模板中定义。当你可以在应用程序中指定页面的路径时,它会起作用

最新更新