在spring webflow中,我需要实现一个导航栏,允许“退后”或恢复流向上一个视图之一。
例如:
对于这个例子,我想从视图4页面返回到视图2。
答案 0 :(得分: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,这是您的信息视图。
使用子流程很棘手。您需要对其进行链接:调用子流,如果发出事件信号表明您需要以特定状态结束流,则立即执行此操作。
例如,假设您的流量链是login-&gt; information-&gt; message-&gt; close。
在关闭流程中,结束状态将是“returnToInformation”。
消息流在=“returnToInformation”上转换为=“returnToInformation”。
“returnToInformation”也是消息流中的结束状态。
然后,信息流在=“returnToInformation”上转换为=“displayInformationPage”,然后重新显示信息页面。
答案 1 :(得分:0)
我通过定义表示选项卡的一些全局流来完成此操作。然后,我定义了一个对象,该对象表示流上的选项卡,并指示当前选项卡是否处于活动状态。当用户移动选项卡时,我根据需要更新了选项卡对象。
当用户单击其中一个选项卡时,它使用全局流程允许它们在选项卡之间移动(对于我的实现,我发现更容易调用操作而不是查看状态,因为您可能会发现视图可能会更改根据用户的互动情况,你可能需要重新计算它们。)
对于标签栏本身,我把它放在一个JSP中,然后放在每个表单的顶部,这使得更新更容易。
它不是最好的解决方案,但确实有效。
祝你好运。