Spring webflow, транзист, только если утверждение верно - PullRequest
0 голосов
/ 02 июля 2018

Я хочу, чтобы мой поток транзистировал, только если какое-то утверждение верно, в противном случае он должен оставаться на той же странице (в том же состоянии просмотра). Моя проблема в том, что если я буду использовать состояние решения без условия else, я останусь в этом состоянии принятия решения, поэтому, если я использую предыдущее действие, оно не будет распознано. Я мог бы использовать перенаправление в предыдущее состояние просмотра, но это заставляет мой вид перезагружаться.

Пример:

<view-state id="myState" view=someView.xhtml">
  <transition on="myAction" to="decision"/>
</view-state>

<decision-state id="myDecision">
  <if test="controller.isOk()" then="nextPage"/>
</decision-state>
  1. В myState я выполняю myAction
  2. myDecision вызывает 'controller.isOk ()'
  3. Результат ложен, поэтому я никуда не перенаправлен
  4. Я снова выполняю myAction, но для myAction нет перехода

Я также пробовал действие-состояние, но я не хочу определять переход для случая «нет», и он генерирует ошибки.

1 Ответ

0 голосов
/ 03 июля 2018

Вы можете помещать вызовы внутри <evaluate> внутри <transition>, и, если вызов не возвращает "success", то есть "success", "yes" или "true", поток будет остаются в том же состоянии .

Так попробуйте это:

<view-state id="myState" view="someView.xhtml">
    <transition on="myAction" to="nextPage>
        <evaluate expression="controller.isOk()"/>
    </transition>
</view-state>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...