2013-06-05 50 views
1

我是一位使用Spring Webflow的新手。我正在尝试使用全局转换。在我的JSP中,我尝试使用Display Spring WebFlow Global Transitions

<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状态1如何卡尼显示所有tranistions包括全球的简化版本?

感谢您的任何帮助提前

回答

1

迟到比从来没有更好。 有一个getGlobalTransitionSet方法,但它在实现org.springframework.webflow.engine.Flow类中,而不是在接口FlowDefinition中。这个方法返回一个Transition集合,它不能被forEach迭代,但是幸运的是它有一个toArray方法。

如果你觉得舒服,您可以使用:

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

测试。