问题:控制器的操作有一个渲染标签,但没有传入模型。存在一个以单词“get”开头的动作。
grails-app/views/site/home.gsp:
homepage
SiteController.groovy:
class SiteController {
def index() {
render (view: "home")
}
def getTest() {
render "getTest"
}
}
在 localhost:8080/site 访问该站点以执行 SiteController 的索引操作。
预期输出:主页 实际输出:getTest 主页
如果 index 的渲染动作改成这样:
render(view: "home", model: [:])
产生了预期的输出。
如果在动作名称中的单词 get 之前添加了一个字符,则会产生预期的输出。
有趣的是,getTest() 在 IDEA 中被颜色编码为紫色。还要注意的是,如果你有多个以get开头的方法,它们都会被执行。
这在 Grails 1.3.6 中没有发生。这在一个全新的 Grails 2.2.2 项目中是可重现的,对我来说似乎是一个错误。为什么会这样?