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

例如 :

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

  • 对于此示例,我想从视图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”上的“jumpBack”转换将使您跳回到视图状态2,这是您的信息视图。

    对于子流,这很棘手。您需要对其进行链接:调用一个子流,并且如果有事件表明您需要以特定状态结束流,请立即执行操作。

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

    在结束时,结束状态将为“returnToInformation”。

    消息流具有从=“returnToInformation”到=“returnToInformation”的过渡。

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

    然后,信息流具有从=“returnToInformation”到=“displayInformationPage”的过渡,然后该过渡将重新显示信息页面。

    08-04 05:18