jsf2中的后退按钮功能

时间:2013-01-04 06:28:29

标签: jsf-2

尝试从第1页导航到第3页以及第2页到第3页。在第3页,当我点击后退按钮时,它应该导航到相应的页面。有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

如果要实现这一目标,则必须实施基于网址的导航。要从1导航到3,您可以实现具有结果属性的<h:button>

<h:button value="Go to third" outcome="/thirdpage.xhtml" />

您也可以指定导航规则。但是你有很多教程可以做到这一点。

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

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

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

你有更多的东西。

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

答案 1 :(得分:0)

您可以通过使用具有存储上一页的字段的bean来实现此目的。然后在第三页中,您可以使用此字段的值返回到相应的页面。例如,在第一页中,您需要让commandLink导航到第三页,同时将previousPage设置为firstPage。类似的commandLink也应该是第二页的一部分。你需要在h:forms中包含h:commandLinks,因为它们使用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方法来学习上一页,我想也是如此,但我不知道确切的方法。