私のユーザー インターフェイスにはいくつかのタブがあり、すべてのタブは grails Webflow の状態です。
TAB1からTAB2、TAB3、TAB4に行ける
TAB2 からは TAB1、TAB3、TAB4 に移動できます...
すべての状態のすべての遷移について、現在、検証のために同じコードを実行し、次のような遷移を定義しています。
on("TAB2") {
log.debug("Navigating to zu TAB2")
bindData(flow.carInstance, params)
if (!flow.carInstance.validate()) {
return error()
}
}.to "TAB2"
on("TAB3") {
log.debug("Navigating to zu TAB3")
bindData(flow.carInstance, params)
if (!flow.carInstance.validate()) {
return error()
}
}.to "TAB3"
....
Grails Webflowの参照: アクションまたは遷移状態の外側のフロー スコープにアクセスする for ループを作成して、遷移を動的に作成しました。ナビゲーションは機能しているように見えますが、すべてのトランジションでログに「TAB4 への移動」(コレクションの最後のエントリ) が表示されます。
for (step in ["TAB2", "TAB3", "TAB4"]) {
on(step) {
log.debug("Navigating to ${step}")
bindData(flow.carInstance, params)
if (!flow.carInstance.validate()) {
return error()
}
}.to step
}
なんで?こんな実装でいいの?Grails はグローバル遷移を定義していないと思います...