путаница с ключом выполнения весеннего веб-потока, какова семантика - PullRequest
6 голосов
/ 26 декабря 2011

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

При поиске в отеляхи страница на 5-й странице результатов поиска, я получаю URL с execution=e1s2.Затем я нажимаю, чтобы просмотреть информацию об отеле, и получаю URL с execution=e1s3.Но когда я нажал кнопку «назад к поиску» , я обнаружил, что страница перенаправлена ​​на первую страницу списка поиска с URL-адресом execution=e1s4, и состояние подкачки пропущено.Однако шаг просмотра определяется в том же определении потока, что и в акте поиска отеля, а переменная подкачки определяется в пределах области потока.

Мой вопрос заключается в том, означает ли новый параметр ключа выполнения выполнение нового потока?Какая семантика?Если это так, как я могу настроить, чтобы придерживаться идентичного выполнения потока, когда я нажимаю кнопку «назад к поиску».

Спасибо

1 Ответ

15 голосов
/ 24 сентября 2012

Если быть точным: ключ выполнения потока (например, "e1s2") действительно состоит из двух частей:

  • "e1": эта часть идентифицирует выполнение потока.Каждый раз, когда вы запускаете новый поток, создается новое выполнение потока.Выполнение потока, по существу, содержит все состояния, связанные с потоком выполнения (т. Е. Разговор, который вы ведете с веб-приложением).Когда поток достигает конечного состояния, выполнение потока (и все связанные моментальные снимки) будет уничтожено.
  • "s2": эта часть идентифицирует моментальный снимок в ходе выполнения потока.Webflow использует так называемые снимки продолжения, чтобы иметь возможность поддерживать браузер назад и обновить кнопки.При каждом запросе к выполнению потока веб-поток создает новый снимок, который позволяет вам продолжать работу с этой точки, если необходимо, например, при использовании кнопки возврата браузера.

См. Также: https://docs.spring.io/spring-webflow/docs/current/api/org/springframework/webflow/execution/repository/support/CompositeFlowExecutionKey.html

Имейте в виду, что ключ выполнения потока не предназначен для чтения человеком или для интерпретации другим программным обеспечением.По сути, это внутренний артефакт веб-потока.

...