3

出于某种原因,我在使用以下代码时会收到大量错误列表:

class UrlMappings {
    static grailsApplication
    static mappings = {

    grailsApplication.controllerClasses.each { controllerClass -> // FAILS!
        println(controllerClass.name)
    }

    "/$controller/$action?/$id?"{}

    "/"(view:"/index")
    "500"(view:'/error')
}

错误: http: //pastebin.com/tiEsENie


以下代码可以正常工作并打印所有控制器名称:

class UrlMappings {
    static grailsApplication
static mappings = {

    "/$controller/$action?/$id?"{
        grailsApplication.controllerClasses.each { controllerClass -> // WORKS!
            println(controllerClass.name)
        }
    }

    "/"(view:"/index")
    "500"(view:'/error')
}
}

grailsApplication不能从内部访问静态static mappings吗?

(我需要能够获取控制器名称才能动态创建 urlmappings)

4

1 回答 1

2

虽然ApplicationHolder仍然有效,但 grails 文档在弃用评论中说明了这一点


弃用:使用依赖注入或实现 GrailsApplicationAware


由于grailsUrlMappingsHolderBeanimplements GrailsApplicationAware,我发现下面的代码也适用于 2.0

class UrlMappings {
    static mappings = {        
        getGrailsApplication().controllerClasses.each{ controllerClass -> 
            if(controllerClass.name./*your logic here*/){
                "/mod/action" {
                    controller = "${controllerClass.name}"
                }
            }
        }
    }
}
于 2011-12-17T01:59:17.567 回答