【发布时间】:2014-11-10 15:13:46
【问题描述】:
我现在有点困惑,这应该可以工作。文档说: http://grails.org/doc/latest/guide/single.html#extendingRestfulController
9.1.5.1 扩展 RestfulController 超类
开始这样做的最简单方法是创建一个新控制器 对于扩展 grails.rest.RestfulController 超级资源的资源 班级。例如:
class BookController extends RestfulController {
static responseFormats = ['json', 'xml']
BookController() {
super(Book)
}
}
要自定义任何逻辑,您只需覆盖适当的操作即可。 下表提供了操作名称的名称和 它们映射到的 URI:
HTTP 方法 URI 控制器操作
GET /books index
GET /books/create 创建
POST /books 保存
GET /books/${id} 显示
GET /books/${id}/edit 编辑
PUT /books/${id} 更新
DELETE /books/${id} 删除
我已经创建了 BookController 以及关联的 Book 域类,但我注意到我无法通过记录的 uri 访问(引导添加书籍)书籍:
/books/${id}
我可以使用非复数域名和操作访问它:
/book/show/1
当我尝试将 @Resource(uri='/books') 添加到 Book 域类时,这也无济于事。 grails不再支持他了吗?我必须使用动作动词吗?
我正在使用 grails 2.4.2
谢谢。
【问题讨论】:
-
您是否在您的
UrlMappings.groovy中设置了"/books"(resources:"book")? -
你是对的,通过添加它确实有效。谢谢你。看来,如果我在域中使用 @Resource 它可以按需要工作。如果我创建一个扩展 RestfulController 的控制器,则映射将被操作基路径覆盖。该文档非常具有误导性。