Grails Webflow-执行相同操作的多个转换

Grails Webflow-执行相同操作的多个转换,grails,spring-webflow,Grails,Spring Webflow,在我的用户界面中有几个选项卡,每个选项卡都是grails webflow中的一个状态 从表1可以转到表2、表3、表4 从表2可以转到表1、表3、表4 对于每个状态下的每个转换,我当前执行相同的代码进行验证,并定义如下转换: on("TAB2") { log.debug("Navigating to zu TAB2") bindData(flow.carInstance, params) if (!flow.carInstance.validate()) {

在我的用户界面中有几个选项卡,每个选项卡都是grails webflow中的一个状态

从表1可以转到表2、表3、表4

从表2可以转到表1、表3、表4

对于每个状态下的每个转换,我当前执行相同的代码进行验证,并定义如下转换:

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"
....
参考,我创建了一个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没有定义全局转换,我认为…

afaik可以在转换和VEIwstate中使用通配符。我试过了,但通配符不起作用。因为所有的转换都必须在编译时知道。但无论如何,通配符对我来说不是一个解决方案,因为我已经知道编译时所有可能的转换。我只是不想重复代码。