1

基本上我想在流程执行键的末尾添加一个#

例如_flowExecutionKey=_c8CEAE6.....E1095#

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

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

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

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

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

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

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

4

2 回答 2

3

有点远景,但我认为解决方案可能是通过步骤的组合,而不是通过 spring web-flow 机制

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

    正文 onload="location.href = location.href + '#object8'"

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

于 2010-02-22T17:38:31.690 回答
1

如果您使用表单,则有比使用 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>

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

于 2012-12-06T12:34:27.040 回答