在Spring Web Flow中,如何在flowExecutionKey的末尾添加#以重定向到页面中的锚点?

时间:2010-02-11 12:19:39

标签: spring spring-webflow

基本上我想在流程执行密钥

的末尾添加一个#

e.g。 _flowExecutionKey=_c8CEAE6.....E1095#

这样当页面显示时,它将显示在锚标记

我有一个由用户动态构建的页面。

用户可以选择向页面添加其他字段以输入更多数据。

字段是存储在列表中的对象。

页面循环遍历列表中的所有对象并显示它们。

我已经配置了一个操作流程,它将另一个对象添加到列表中,然后再次显示该页面,这会导致出现新字段。

问题在于,当页面再次加载时,它始终位于顶部,而不是添加新字段的位置。我可以在生成新字段的位置添加锚点,但我不知道是否可以在流程执行键的末尾添加#

2 个答案:

答案 0 :(得分:3)

有点远景,但我认为解决方案可能是通过一系列步骤,而不是通过弹簧网络流程机制

  • 设置在viewScope中编辑的最后一个对象的索引
  • 在你的jsp中,放置本地锚点,比如object0到object20
  • 有一些javascript,'onload'将位置更改为右锚:

    body onload =“location.href = location.href +'#object8'”

这会将你带到第8个元素,而不会再次访问服务器。

答案 1 :(得分:0)

如果你使用表单,有一个比使用javascript更好的解决方案。

你可以使用这样的锚:

<form action="${flowExecutionUrl}#position" method="POST" commandName="yourForm">

结合在工作流程中设置属性:

    <transition on="save" to="yourViewState" >
        <set name="flowScope.isSaved" value="true" />
    </transition>

在你的jsp上面:

<c:if test="${isSaved}">
    <a id="position"></a>
    Your thingy is saved.
</c:if>

因此,如果您提交保存操作,屏幕将自动跳转到“您的东西已保存”消息。