哪个控制器变量应具有当前操作名称:action或actionName?

时间:2015-01-21 03:02:53

标签: grails

我正在使用Grails 2.1.0并在控制器上有一个save()动作,有两个参数:

def save(String templateId,String action)

当我提交一个带有名为“action”的字段的表单,其中包含vaule“xxxx”,并且我打印了动作,我得到“保存”。

doc说当前的动作名称应该在actionName变量**上,但似乎Grails也将动作名称放在我的“action”变量上。

任何人都知道为什么会这样?这是一个错误还是预期的行为?

** http://grails.github.io/grails-doc/2.1.0/ref/Controllers/actionName.html

1 个答案:

答案 0 :(得分:2)

来自UrlMappings.groovy的那个。映射配置行中的命名变量成为params映射中的变量,因此默认映射

"/$controller/$action?/$id?(.$format)?"{
    ...
}

将创建一个controller变量,如果指定了某个操作,则该变量将位于action变量中,如果有{id},id 。您自己指定的任何变量也是如此,例如

"/api/v1.0/publish/$plugin/$version"(controller:"repository", action:"publish")

定义pluginversion变量。

相关问题