为了在资源映射中嵌套常规URL映射,根据url映射部分中的grails documentation,您可以执行以下操作
"/books"(resources: "book") {
"/publisher"(controller:"book", action:'publisher', method: "GET")
}
这将生成以下网址列表
Controller: book
| GET | /books/create | Action: create |
| GET | /books/${id}/edit | Action: edit |
| GET | /books/${bookId}/publisher | Action: publisher |
| POST | /books | Action: save |
| GET | /books | Action: index |
| DELETE | /books/${id} | Action: delete |
| PATCH | /books/${id} | Action: patch |
| PUT | /books/${id} | Action: update |
| GET | /books/${id} | Action: show |
正如您所看到的,"/publisher"(controller:"book", action:'publisher', method: "GET")
生成的网址使用变量bookId
代替id
,与其他网址一样。
/books/${bookId}/publisher
我的问题是,是否可以更改此变量的名称并将其命名为id
,就像其他人一样
提前致谢
答案 0 :(得分:0)
我个人没有使用过那种映射风格,但我相信资源映射中常规URL映射的目的是做一些特殊的事情'使用该特定路径,在这种情况下/publisher
(例如,您可以将其完全映射到不同的控制器等)
听起来你希望它表现得像另一个标准的GET方法,所以你可以添加像
这样的资源条目 get "/books/$id/publisher"(controller:"book", action:"publisher")