情况:
假设我有一个名为AccountController的示例控制器,其中包含一些显示,编辑和更新操作。
在Grails网址映射中,我尝试按方法类型进行映射,例如GET POST等等
然后我有一个链接指向控制器对应的动作如下:
<g:link controller="account" action="edit">Edit my account link</g:link>
的映射:
"/profile" (controller: "account", action: "show")
"/profile/edit" (controller: "account", action: [GET: "edit", POST: "update"])
这里的问题是生成的链接应该使用映射进行查找并使其在生成的html页面中看起来像“/ profile / edit”,而是页面具有“/ account / edit”根据映射不存在,因此单击时会导致错误。
我甚至尝试过替代语法:
"/profile/edit" (controller: "account") { action = [GET: "edit", POST: "update"] }
但它仍指向不存在的网址映射。
这是一个错误还是只是我有一个糟糕的一天?
答案 0 :(得分:2)
我不知道这是否(使用HTTP方法的反向URL映射)在以前的Grails版本中有效,但我在1.3.7中重现了您的问题,我提出的唯一解决方案是使用{{ 3}}。使用它,你的标签将是:
<g:link controller="account" action="edit" mapping="profileEditing">
Edit my account link
</g:link>
并且编辑映射将是:
name profileEditing: "/profile/edit" (controller: "account") {
action = [GET: "edit", POST: "update"]
}
问候。