Grails 1.3.7中的URL映射是否已更改?

时间:2011-04-06 15:28:13

标签: grails

情况:

假设我有一个名为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"] }

但它仍指向不存在的网址映射。

这是一个错误还是只是我有一个糟糕的一天?

1 个答案:

答案 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"]
}

问候。