В Spring Web Flow как мне добавить # в конец flowExecutionKey для перенаправления на якорь на странице? - PullRequest
1 голос
/ 11 февраля 2010

В основном я хочу добавить # в конец ключа выполнения потока

например. _flowExecutionKey=_c8CEAE6.....E1095#

, чтобы при отображении страницы она отображалась в теге привязки

У меня есть страница, которая динамически создается пользователем.

Пользователь может добавить дополнительные поля на страницу для ввода дополнительных данных.

Поля - это объект, который хранится в списке.

Страница перебирает все объекты в списке и отображает их.

Я настроил поток действий, который добавляет другой объект в список, а затем снова отображает страницу, в результате чего появляются новые поля.

Проблема в том, что при повторной загрузке страницы она всегда вверху, а не там, где было добавлено новое поле. Я могу добавить привязку к тому, где генерируются новые поля, но я не знаю, возможно ли добавить # в конец ключа выполнения потока

Ответы [ 2 ]

3 голосов
/ 22 февраля 2010

Немного длинно, но я думаю, что решение для этого, вероятно, через комбинацию шагов, а не через механизмы пружинного потока

  • установить индекс последнего объекта, отредактированного в viewScope
  • в вашем jsp, поместите локальные якоря, скажем, object0 на object20
  • имеет немного javascript, который 'onload' меняет местоположение на правую привязку:

    body onload = "location.href = location.href + '# object8'"

Это приведет вас к восьмому элементу, без повторного попадания на сервер.

0 голосов
/ 06 декабря 2012

Если вы используете формы, есть лучшее решение, чем работа с 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>

Таким образом, если вы отправите действие сохранения, на экране автоматически появится сообщение «Ваша вещь сохранена».

...