在一個spring webflow中,我需要實現一個導航欄,允許「退後」或恢復到前一個視圖之一。Spring webflow:遍歷視圖狀態
例如:
- 視圖1 =登錄
- 視圖2 =我的信息
- 查看3 =我的郵件
- 查看4 =關閉會話
對於這個例子,我想從視圖4頁面返回到視圖2。
在一個spring webflow中,我需要實現一個導航欄,允許「退後」或恢復到前一個視圖之一。Spring webflow:遍歷視圖狀態
例如:
對於這個例子,我想從視圖4頁面返回到視圖2。
這取決於你如何去做這件事。如果你在一個流程中這樣做,你就會有這樣的事情:
<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」之間有一個轉換,然後它將重新顯示信息頁面。
我通過定義一些表示標籤的全局流程來實現這一點。然後,我定義了一個代表流上選項卡的對象,並指出當前選項卡是否處於活動狀態。當用戶移動標籤頁時,我會適當更新標籤對象。
當用戶點擊其中一個選項卡時,它使用全局流程來允許它們在標籤之間移動(對於我的實現,我發現調用操作比查看狀態更容易,因爲您可能會發現視圖可能根據用戶交互而改變,以便您可以重新計算它們)。
對於標籤欄本身,我把它放在一個單獨的JSP中,然後放在每個表單的頂部,這使得更新變得更容易。
它不是最好的解決方案,但它確實有效。
祝你好運。
那麼......問題是什麼?您遇到特定問題嗎? – 2008-10-06 15:32:36