我们最终从1.0.x升级到Spring Webflow 2.4.x,并且遇到实际的先前状态(点击浏览器的后退按钮后)。摘要情况:表单有2个元素,第一次打开页面时显示第1个元素。然后单击一个按钮,第二个元素出现。单击“返回”按钮后,您将无法进入仅显示第一个元素的状态。
如果没有验证错误并且flowScope变量设置为true,则显示第二个元素。现在,看起来这个变量的真值可用于以前的状态,这不是预期的行为。它在Spring Webflow 1.0.x中运行良好。我在这里缺少什么?
流程中的抽象代码:
<view-state id="searchForm" view="searchForm">
...
<transition on="update1stElement" to="searchForm">
...
<set name="flowScope.updatePerformed" value="true" />
</transition>
...
</view-state>
jsp中的抽象代码:
<form:form> <!-- org.springframework.web.servlet.tags.form.FormTag -->
...
<1st element>
<input type="submit" name="_eventId_update1stElement" id="_eventId_update1stElement" value="Update">
<c:if test="${updatePerformed}">
<2nd element>
</c:if>
...
</form:form>
org.springframework.webflow.action.FormAction
的formObjects也会出现同样的问题。他们也有flowScope。