Use the action-state
element when you wish to invoke an action, then transition to another state based on the action's outcome:
<action-state id="moreAnswersNeeded"> <evaluate expression="interview.moreAnswersNeeded()" /> <transition on="yes" to="answerQuestions" /> <transition on="no" to="finish" /> </action-state>
The full example below illustrates a interview flow that uses the action-state above to determine if more answers are needed to complete the interview:
<flow xmlns="http://www.springframework.org/schema/webflow" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/webflow http://www.springframework.org/schema/webflow/spring-webflow-2.0.xsd"> <on-start> <evaluate expression="interviewFactory.createInterview()" result="flowScope.interview" /> </on-start> <view-state id="answerQuestions" model="questionSet"> <on-entry> <evaluate expression="interview.getNextQuestionSet()" result="viewScope.questionSet" /> </on-entry> <transition on="submitAnswers" to="moreAnswersNeeded"> <evaluate expression="interview.recordAnswers(questionSet)" /> </transition> </view-state> <action-state id="moreAnswersNeeded"> <evaluate expression="interview.moreAnswersNeeded()" /> <transition on="yes" to="answerQuestions" /> <transition on="no" to="finish" /> </action-state> <end-state id="finish" /> </flow>