2013-01-04 64 views
-1

嘗試從第1頁導航到第3頁以及第2頁導航到第3頁。在第3頁上,當我點擊返回按鈕時,它應導航到適當的頁面。請任何人都可以幫助我如何實現此目的?jsf2中的後退按鈕功能

回答

0

如果你想實現這一點,你必須實現基於URL的導航。要從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

爲了知道你什麼時候從有不同的方式,但我認爲正確的方法是使用視圖PARAMS。在一個按鈕或鏈接中,您可以指定一個<f:param name="ComingFrom" value="#{sourceBean.id}" />,並在目標頁面以<f:viewParam id="ComingFrom" name="ComingFrom" value="#{destinationBean._ParamSourceId}" />的方式接收它。

這樣,你通過請求傳遞參數,你可以建立你的後退按鈕指向一個URL或另一個。

你有更多的東西。

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

+0

感謝您的回覆。我的問題是在第3頁中,如何確定請求是來自第1頁還是第2頁,以便後退按鈕應該導航到相應的頁面。 –

+0

我改變我的答案,以幫助你。 –

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方法來學習前一頁太,我認爲做到這一點,但我不知道確切的方法。

+0

非常感謝您的回覆。 –

+0

歡迎您,我希望它能解決您的問題。 – cubbuk