2010-02-11 40 views
1

基本上我想添加#到流程执行键的末尾在Spring Web Flow中,如何将#添加到flowExecutionKey的末尾以重定向到页面中的锚点?

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

使得页显示时,将显示在所述锚定标记

我具有由用户动态地建立了一个页面。

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

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

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

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

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

回答

3

有点长,但我认为这是一个解决方案可能是通过步骤的组合,并没有这么多过春季网络的流程机制

  • 设置viewScope
  • 编辑在你的JSP的
  • 的最后一个对象的索引,把当地的锚,说object0到object20
  • 有一点javascript,'onload'将位置更改为正确的锚点:

    身体的onload = “location.href = location.href + '#object8'”

这将带你到了8元,而无需再次命中服务器。

+0

使用上述方法我能解决我的问题,谢谢! – 2010-03-11 10:39:18

+1

不错:)所以我认为你应该把你的问题标记为“回答” – 2010-03-11 13:08:03

0

如果您使用表单,比使用JavaScript有更好的解决方案。在JSP

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

在顶部:

您可以使用锚这样的:

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

在结合工作流设置一个属性

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

所以,如果你提交你的保存动作,屏幕会自动跳转到“你保存的东西”消息。