1

我们正在为我们的应用程序使用 grails 2.3.3。

对资源的访问需要通过 REST 接口完成,因为它将通过 Web 浏览器和其他应用程序进行访问。

为此,UrlMapping.groovy 包含 REST 映射,例如:

"/toys"(resources:"toy")

控制器继承自 ResftulController

import grails.rest.RestfulController

class ToyController extends RestfulController {

    // Derived from RestfulController as described in
    // http://grails.org/doc/latest/guide/webServices.html#REST
    //
    // All RAILS functions implemented in base class

    static responseFormats = ['json', 'html']

    ToyController() {
        super(Toy)
    }

}

我们在使用带有 jQ​​uery 插件的 g:formRemote 更新项目时遇到问题。

<g:formRemote name="updateForm"
              id="${toy.id}"
              method="PUT"
              url="[controller: 'toy', action:'update' ]">

更新时,它不使用正确的 URL:

Request URL: http://localhost:8080/app/toy/update
METHOD: PUT
FORM DATA: ...

AFAIK URL 应该是这样的:

Request URL: http://localhost:8080/app/toys/5252
METHOD: PUT
FORM DATA: ...

这是在 Grails 2.3 中将 g:formRemote 与 RESTful 资源一起使用的正确方法吗?

g:formRemote 是否能够使用 URL 映射来创建正确的 URL?

g:link 具有属性 resource 以生成指向 REST 资源的链接。表格也有等价物吗?

<g:link resource="${book}">My Link</g:link>
4

1 回答 1

0

你不能像这样通过 formRemote 传递 id。同样适用于参数。您必须将它们添加为 url 参数块的一部分,就像这样。

<g:formRemote name="updateForm"
          method="PUT"
          url="[controller: 'toy', action:'update', id: toy.id]">
于 2014-01-10T19:03:53.020 回答