是的,基本上我们有一个链接到我们的系统全部小写,但需要骆驼套.而不是让其他开发人员解决这个问题,我想通过网址魔法让问题消失
"/myobj/$action?/$id?"{
controller: "myObj"
}
Run Code Online (Sandbox Code Playgroud)
我所试图做的是什么地图引用控制器MyObj中到控制器MyObj中代替,并保持行动和其他一切不变.上面的代码给出了一个例外,说是
2010-07-11 18:14:50,021 ERROR [default] - Servlet.service() for servlet default threw exception
java.lang.IllegalArgumentException: URL mapping must either provide a controller or view name to map to!
Run Code Online (Sandbox Code Playgroud)
但是以下工作
"/myobj/$action?/$id?"(controller: "myObj")
Run Code Online (Sandbox Code Playgroud)
鉴于文档,我不明白.为什么闭合不起作用?这是grails 1.2.0 ......
你应该用
'/myobj/$action?/$id?' {
controller = 'myObj'
}
Run Code Online (Sandbox Code Playgroud)
编辑 作为位的解释:在实施例结肠创建如所描述的地图这里(工作情况下是一个Groovy函数调用与命名的参数).在闭包内,您需要直接设置controller属性的值,即使用等号.
Grails URL映射文档中未明确突出显示此差异.
编辑 这里是一个未经测试的方法,可能会产生不区分大小写的控制器映射......也许.
'$myController/$action?/$id?' {
grailsApplication.getArtefacts('Controller').find { it.name.toLowerCase() == myController.name.toLowerCase }.with { controller = it.name }
}
Run Code Online (Sandbox Code Playgroud)
我假设这里(我还没有验证)Grails应用程序在DefaultMappingUrlEvaluator中的MappingCapturingClosure中可用.
| 归档时间: |
|
| 查看次数: |
2496 次 |
| 最近记录: |