gpt4 book ai didi

grails - 在 UrlMappings 中使用 grailsApplication 注入(inject)

转载 作者:行者123 更新时间:2023-12-02 11:50:32 24 4
gpt4 key购买 nike

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

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

<小时/>

以下代码工作正常并打印所有 Controller 名称:

class UrlMappings {
static grailsApplication
static mappings = {

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

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

是否可以从静态映射内部访问静态grailsApplication

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

最佳答案

虽然 ApplicationHolder 仍然有效,但 grails 文档在弃用注释中声明了这一点


已弃用:使用依赖注入(inject)或实现 GrailsApplicationAware


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

class UrlMappings {
static mappings = {
getGrailsApplication().controllerClasses.each{ controllerClass ->
if(controllerClass.name./*your logic here*/){
"/mod/action" {
controller = "${controllerClass.name}"
}
}
}
}
}

关于grails - 在 UrlMappings 中使用 grailsApplication 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8541722/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com