代码之家  ›  专栏  ›  技术社区  ›  Craig Angus karan

在spring web flow中,如何将添加到flowExecutionKey的末尾以重定向到页面中的锚?

  •  1
  • Craig Angus karan  · 技术社区  · 16 年前

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

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

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

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

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

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

    页面将循环显示列表中的所有对象。

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

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

    2 回复  |  直到 13 年前
        1
  •  3
  •   Hans Westerbeek    16 年前

    有点冗长,但我认为解决这个问题的方法可能是通过组合步骤,而不是通过spring web流机制。

    • 设置在ViewScope中编辑的最后一个对象的索引
    • 在jsp中,放置本地锚,比如object0到object20
    • 使用一点javascript,“onload”会将位置更改为正确的锚点:

      body onload=“location.ref=location.ref+'object8'”

    这将带您进入第8个元素,而不会再次命中服务器。

        2
  •  0
  •   K.C.    13 年前

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

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

    推荐文章