1

我是使用 Spring Webflow 的新手。我正在尝试使用全局转换。在我的jsp中,我试图使用

<c:forEach var="transition" items="${flowRequestContext.currentState.transitions}">     
<c:out value="${transition.id}"/>
</c:forEach>

我可以看到 currentState 的所有转换,但我看不到全局转换。

我的理解是全局转换将在所有视图状态中可用。要获得全局转换,我需要以不同的方式访问它吗?

这是我的流 xml 的简化版本

<flow xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/webflow"    
xsi:schemaLocation="http://www.springframework.org/schema/webflow 
http://www.springframework.org/schema/webflow/spring-webflow-2.0.xsd">

<view-state id="state1" view="view1.jsp" model="person">
    <transition on="submit" to="state2"/>
    <transition on="cancel" to="canceled"/>
</view-state>

<view-state id="state2" view="view1.jsp" model="person">
    <transition on="complete" to="complete"/>
</view-state>

<view-state id="canceled" view="view1.jsp" model="person">
    <transition on="resubmit" to="resubmit"/>
</view-state>

<action-state id="reassign">
    <evaluate expression="CustomAction.reassign(flowRequestContext)"/>
</action-state>

<end-state id="complete"/>

<global-transitions>    
    <transition on="cancel" to="canceled"/>
    <transition on="reassign" to="reassign"/>
</global-transitions>

</flow>      

那么当在 jsp 中的 state1 中时,我如何显示包括全局在内的所有转换?

感谢您提前提供任何帮助

4

1 回答 1

1

迟到总比不到好。有getGlobalTransitionSet方法,但是在实现org.springframework.webflow.engine.Flow类中,不在接口FlowDefinition中。此方法返回一个不能被 forEach 迭代的 TransitionSet,但幸运的是它有一个 toArray 方法。

如果您对此感到满意,可以使用:

${flowRequestContext.activeFlow.globalTransitionSet.toArray()}

经测试。

于 2015-07-31T20:31:04.873 回答