如何在动态映射闭包中获取控制器名称

时间:2013-02-01 23:04:14

标签: grails

我正在尝试将控制器名称放在动态映射闭包中,如下所示:

"/admin/$controller/$action?/$id?"{
    controller = {
        "${controllerName}Admin"
    }
}

强制所有请求“/ admin / [controller name]”映射到名为“[controller name] Admin”的控制器。 “controllerName”变量在闭包之外工作,但内部却没有。

我该怎么做?

非常感谢!

1 个答案:

答案 0 :(得分:0)

一种可能的解决方案可能是:

    "/admin/$controller/$action?/$id?"{
        controller = {
            def controllerName = (request.requestURI - request.contextPath).split('/')[2]

            // or
            //def controllerName = request.servletPath.split('/')[2]

            "${controllerName}Admin"
        }
    }