【问题标题】:how to navigate to a lot of pages in jsf如何导航到jsf中的很多页面
【发布时间】:2014-05-22 21:20:39
【问题描述】:

我有这个问题:我有大约 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。 我想以最正确的方式做到这一点。

我必须使用 forwardredirect 吗?我该怎么做?

这是菜单代码:

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

【问题讨论】:

    标签: java jsf primefaces navigation faces-config


    【解决方案1】:

    你需要使用:

    <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。

    您需要使用菜单创建模板,例如: 模板.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/>
    

    第 1 页、第 2 页也一样,只是它们的内容会改变。

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

    【讨论】:

    • 模板很好,但我不确定如何进行导航。我必须使用导航规则吗?我会更新问题,以便您了解我是如何做到的。问题是要知道这是否是正确的方法......
    猜你喜欢
    • 2011-12-11
    • 1970-01-01
    • 1970-01-01
    • 2011-11-03
    • 2015-08-12
    • 1970-01-01
    • 1970-01-01
    • 2011-07-05
    • 1970-01-01
    相关资源
    最近更新 更多