我们正在使用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)
}
}
我们在使用g:formRemote和jQuery插件更新项目时遇到问题。
<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具有属性资源,用于生成REST资源的链接。表格也有等价物吗?
<g:link resource="${book}">My Link</g:link>
答案 0 :(得分:0)
你不能通过formRemote传递这样的id。同样适用于params。你必须将它们添加为url param块的一部分,就像这样。
<g:formRemote name="updateForm"
method="PUT"
url="[controller: 'toy', action:'update', id: toy.id]">