为了在资源映射中嵌套常规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")
生成的URL使用变量bookId
代替了像其他URL一样的id
。/books/${bookId}/publisher
我的问题是是否可以更改此变量的名称,并像其他名称一样命名它为
id
提前致谢
最佳答案
我没有亲自使用该映射样式,但是我相信资源映射中常规URL映射的意图是对该特定路径(在这种情况下为/publisher
)执行“特殊”操作(例如,您可以将其完全映射到其他 Controller )等)
听起来您想让它像另一个标准的GET方法一样工作,所以您可以添加一个资源条目,例如get "/books/$id/publisher"(controller:"book", action:"publisher")
关于grails - 在资源映射中嵌套常规URL映射时,可以更改生成的变量的名称吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47208497/