2013-06-05 92 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()} 

測試。