【问题标题】:Back button functionality in jsf2jsf2 中的后退按钮功能
【发布时间】:2013-01-04 06:28:29
【问题描述】:

尝试从第 1 页导航到第 3 页以及从第 2 页导航到第 3 页。在第 3 页中,当我单击后退按钮时,它应该导航到相应的页面。有人可以帮我实现这一目标吗?

【问题讨论】:

    标签: jsf-2


    【解决方案1】:

    您可以通过拥有一个存储前一页的字段的 bean 来实现这一点。然后在第三页可以使用该字段的值返回到相应的页面。例如,在您的第一页中,您需要有一个 commandLink 将您导航到第三页,同时将 previousPage 设置为 firstPage。类似的 commandLink 也应该是第二页的一部分。您需要将 h:commandLinks 包含在 h:forms 中,因为它们使用 post 方法来传递参数。

    <h:commandLink value="Third  Page" action="#{navigationPageBean.updateLastVisitedPage("/firstPage.xhtml")}"/>
    
    <h:commandLink value="Third  Page" action="#{navigationPageBean.updateLastVisitedPage("/secondPage.xhtml")}"/>
    
    @Named
    public class NavigationPageBean implements Serializable
    {
        private String previousPage;
    
        public String updateLastVisitedPage(String pageName)
        {
            previousPage = pageName;
            return "/thirdpage.xhtml";
        }
    
        public String getPreviousPage()
        {
            return previousPage;
        }
    
        public void setPreviousPage(String previousPage)
        {
            this.previousPage = previousPage;
        }
    }
    

    我认为你也可以通过使用javascript方法学习上一页来实现这一点,但我不知道确切的方法。

    【讨论】:

      【解决方案2】:

      如果你想实现它,你必须实现基于 url 的导航。要从 1 导航到 3,您可以实现带有结果属性的 &lt;h:button&gt;

      &lt;h:button value="Go to third" outcome="/thirdpage.xhtml" /&gt;

      您也可以指定导航规则。但是,您有几十个教程可以做到这一点。

      http://www.mkyong.com/jsf2/jsf-2-button-and-commandbutton-example/

      http://www.mkyong.com/jsf2/implicit-navigation-in-jsf-2-0/

      JSF 2.0 implicit navigation, different views

      为了知道你来自哪里,有不同的方法,但我认为正确的方法是使用视图参数。在按钮或链接中,您可以指定&lt;f:param name="ComingFrom" value="#{sourceBean.id}" /&gt;,然后您会在目标页面中以<f:viewParam id="ComingFrom" name="ComingFrom" value="#{destinationBean._ParamSourceId}" /> 的方式接收它。

      这样你就可以通过请求传递参数,你可以构建你的后退按钮来指向一个 url 或另一个。

      你有更多的东西。

      https://blogs.oracle.com/rlubke/entry/jsf_2_0_bookmarability_view

      【讨论】:

      • 感谢您的回复。我的问题在第 3 页,如何确定请求来自第 1 页还是第 2 页,以便后退按钮导航到相应的页面。
      • 为了帮助你,我改变了答案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-09
      • 1970-01-01
      • 2011-03-04
      • 1970-01-01
      相关资源
      最近更新 更多