获取 spring 网络流中先前执行状态的 ID

Get the ids of the previously executed states in spring web flow

在我的 Spring Webflow 应用程序中,我试图显示当前点执行状态(从开始)(视图状态和操作状态)的 ID 列表。那么,Java中有没有一种方法可以用来获取这些信息?

谢谢

我建议设置和使用 FlowExecutionListener,特别是方法 sessionStartedstateEnteredsessionEnded

您可以使用 context.getCurrentState().getId()

获取州的 ID
public class MyFlowListener implements FlowExecutionListener {

    @Override
    public void stateEntered(RequestContext context, StateDefinition previousState, StateDefinition state) {

    }

    @Override
    public void sessionStarted(RequestContext context, FlowSession session) {

    }

    @Override
    public void sessionEnded(RequestContext context, FlowSession session, String outcome, AttributeMap<?> output) {

    }
}

你可以像这样注册你的监听器(xml 配置):

<bean id="myFlowListener" class="my.custom.webflow.MyFlowExecutionListener"/>

<webflow:flow-executor id="flowExecutor">  
    <webflow:flow-execution-listeners>  
        <webflow:listener ref="myFlowListener"/>  
    </webflow:flow-execution-listeners>  
</webflow:flow-executor>