3

在 spring webflow 中,我需要实现一个导航栏,该导航栏将允许“后退”或将流恢复到前一个视图之一。

例如 :

  • 查看 1 = 登录
  • 查看 2 = 我的信息
  • 查看 3 = 我的消息
  • 查看 4 = 关闭会话

对于此示例,我想从视图 4 页面返回视图 2。

4

2 回答 2

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”上的“jumpBack”转换将跳转回视图状态#2,这是您的信息视图。

使用子流程很棘手。你需要链接它:调用一个子流,如果一个事件发出信号表明你需要以特定状态结束你的流,立即这样做。

例如,假设您的流程链是登录->信息->消息->关闭。

在关闭流程中,最终状态将是“returnToInformation”。

消息流在="returnToInformation" 到="returnToInformation" 上有一个转换。

“returnToInformation”也是消息流中的一个结束状态。

然后,信息流在="returnToInformation" 到="displayInformationPage" 上进行转换,然后重新显示信息页面。

于 2008-10-06T17:23:22.260 回答
0

我通过定义一些代表选项卡的全局流来做到这一点。然后,我定义了一个对象,该对象表示流上的选项卡并指示当前选项卡是否处于活动状态。当用户在标签中移动时,我适当地更新了标签对象。

当用户点击其中一个选项卡时,它使用全局流来允许它们在选项卡之间移动(对于我的实现,我发现调用操作而不是查看状态更容易,因为您可能会发现视图可能会根据用户交互才能到达那里,因此您可能需要重新计算它们)。

对于标签栏本身,我将它放在一个 JSP 中,然后将其放在每个表单的顶部,这使得更新变得更容易。

它不是最好的解决方案,但它确实有效。

祝你好运。

于 2009-08-24T15:07:40.877 回答