【问题标题】:Grails: Same URL Mapping to different actions per different HTTP methodsGrails:相同的 URL 映射到不同 HTTP 方法的不同操作
【发布时间】:2018-09-03 10:50:05
【问题描述】:

我正在使用 Grails v3.2.9

在官方文档中,我为mapping to http methods 找到了以下内容:

static mappings = {
   "/product/$id"(controller:"product", action: "update", method: "PUT")
}

但这还不够。我需要的是有一个映射,它基于 HTTP 方法映射到不同的操作(在同一个控制器中)。

有什么想法吗?

【问题讨论】:

    标签: grails url-mapping http-method controller-action


    【解决方案1】:

    添加 URLMappings 像 --

    "/product/api/v2/book" (controller: 'book') {
        action = [GET: 'show', POST: 'update']
    }
    

    另外,最好在控制器中添加方法约束 --

      static allowedMethods = [show: 'GET', update: 'POST']
    

    【讨论】:

      【解决方案2】:

      或者,如果您遵循 REST 控制器的方法命名约定...您可以逃脱:

      "/product/$id" (resources:'product')
      

      这里有一些很好的信息: http://mrhaki.blogspot.com/2013/11/grails-goodness-customize-resource.html

      【讨论】:

      • 感谢您的回复,但我的情况是调用完全相同的 URL,映射到 GET 和 POST 的不同操作。
      • 没关系,其他答案应该适用于这种情况。我没有读到您的问题需要相同的 URL。
      最近更新 更多