Spring Webflow 2.0 - связь с другим потоком

У меня есть кнопка отмены, которая должна вернуть пользователя на стартовую страницу. Кнопка «Отмена» находится в потоке createXYZ.xml, стартовая страница — это состояние просмотра в потоке start.xml, как я могу связать один поток с другим.

Начинать:

<view-state id="start" view="start">
</view-state>       

Кнопка отмены:

<view-state id="createXYZ" view="createXYZ">
    <transition on="cancel" to=" ? ">
    </transition>
</view-state>

person SCBoy    schedule 05.10.2010    source источник
comment
вы хотите использовать для этого состояние подпотока. проверьте раздел 3.9 в справочном документе Spring Web Flow.   -  person DwB    schedule 05.10.2010
comment
не знаю точно, что такое подпоток, но я могу кое о чем подумать. Проблема в том, что у меня не 1 createXYZ, а 6. Так что мне нужно сделать 6 подпотоков в стартовый поток или как? Разве нет лучшего способа?   -  person SCBoy    schedule 05.10.2010


Ответы (1)


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

Я не уверен, что это то, что вы пытаетесь сделать. Если вы просто пытаетесь завершить поток и начать новый поток, вы можете сделать что-то вроде

<view-state id="createXYZ" view="createXYZ">
   <transition on="cancel" to="endFlow"></transition>
</view-state>
<end-state id="endFlow" view="externalRedirect:../myOtherFlow.action"/>

Это не только завершит поток, над которым вы только что работали (что очень полезно), но и запустит новый поток. В этом случае новый поток называется myOtherFlow.

person John Vint    schedule 05.10.2010
comment
Но я хочу перейти в состояние просмотра myOtherFlow, которое не является начальным состоянием потока. - person SCBoy; 06.10.2010
comment
хорошо для функции отмены, это сработало. Просто нужно было указать в нем имя представления: ‹end-state id=endFlow view=externalRedirect:start/› Мне просто интересно, есть ли способ перейти в состояние другого потока (без подпотока). Или это невозможно? - person SCBoy; 06.10.2010
comment
На самом деле нет другого способа вызвать другое состояние просмотра, не являясь подпотоком. - person John Vint; 06.10.2010