2008-10-06 96 views
3

在一個spring webflow中,我需要實現一個導航欄,允許「退後」或恢復到前一個視圖之一。Spring webflow:遍歷視圖狀態

例如:

  • 視圖1 =登錄
  • 視圖2 =我的信息
  • 查看3 =我的郵件
  • 查看4 =關閉會話

對於這個例子,我想從視圖4頁面返回到視圖2。

+0

那麼......問題是什麼?您遇到特定問題嗎? – 2008-10-06 15:32:36

回答

4

這取決於你如何去做這件事。如果你在一個流程中這樣做,你就會有這樣的事情:

<view-state id="loginView" view="login.jsp"> 
    <action-state bean="someBean" method="login" /> 
    <transition on="success" to="informationView" /> 
</view-state> 

<view-state id="informationView" view="information.jsp"> 
    <render-actions> 
     <action-state bean="someBean" method="retrieveInformation" /> 
    </render-actions> 
    <transition on="forward" to="messageView" /> 
    <transition on="back" to="loginView" /> 
</view-state> 

<view-state id="messageView" view="message.jsp"> 
    <render-actions> 
     <action-state bean="someBean" method="retrieveMessage" /> 
    </render-actions> 
    <transition on="forward" to="closeView" /> 
    <transition on="back" to="informationView" /> 
</view-state> 

<view-state id="closeView" view="logout.jsp"> 
    <transition on="jumpBack" to="informationView" /> 
</view-state> 

的「closeView」的「跳回」過渡會跳到你回來查看狀態#2,這是您的信息圖。

對於子流而言,這是非常棘手的。您需要將其鏈接起來:調用子流程,並且如果發出事件表明您需要以特定狀態結束流程,請立即執行此操作。

例如,假設您的流程鏈是login-> information-> message-> close。

在關閉流程中,結束狀態將是「returnToInformation」。

消息流在=「returnToInformation」轉換爲=「returnToInformation」。

「returnToInformation」也是消息流中的結束狀態。

然後,信息流在=「returnToInformation」到=「displayInformationPage」之間有一個轉換,然後它將重新顯示信息頁面。

0

我通過定義一些表示標籤的全局流程來實現這一點。然後,我定義了一個代表流上選項卡的對象,並指出當前選項卡是否處於活動狀態。當用戶移動標籤頁時,我會適當更新標籤對象。

當用戶點擊其中一個選項卡時,它使用全局流程來允許它們在標籤之間移動(對於我的實現,我發現調用操作比查看狀態更容易,因爲您可能會發現視圖可能根據用戶交互而改變,以便您可以重新計算它們)。

對於標籤欄本身,我把它放在一個單獨的JSP中,然後放在每個表單的頂部,這使得更新變得更容易。

它不是最好的解決方案,但它確實有效。

祝你好運。