Grails WebFlow noob здесь ...
Одно состояние в моем WebFlow получает два события, которые должны инициировать одно и то же действие, а затем переходить в отдельные состояния, если это действие успешно. Моя первоначальная попытка повторила код в actionState
. Нехорошо. Итак, после некоторых проб и ошибок я пришел к следующему.
state0 {
on("event1") {
flash.stateAfterNext = "state1"
}.to "actionState"
on("event2") {
flash.stateAfterNext = "state2"
}.to "actionState"
}
actionState {
action {
flow.unit = Unit.get(params.unit)
success()
}
on("success").to { flash.stateAfterNext }
on(Exception).to "home"
}
state1 { ... }
state2 { ... }
Это работает, но это хорошая практика Грааля? Есть ли лучший способ для обработки логики ветвления потока, как это? В частности, должен ли я здесь использовать подпоток, и если да, то как бы это выглядело?
Примечание. Я попытался переместить код в actionState
в отдельный метод, но поскольку он ссылается на flow
, который не работает.