Grails,createLink生成错误的链接

时间:2012-04-16 18:46:32

标签: grails url-mapping

我在使用createlink时遇到了一个奇怪的问题。我的gsp中有这个

<g:createLink controller="uni" action="show" id="1" />

我希望它能产生类似

的东西
"/uni/show/1"

然而,它实际上给了我

"/uni/create?id=1"

我也尝试过内联版本,

${createLink(controller:'uni', action:'show', id:1) }

这也给出了

"/uni/create?id=1"

非常感谢任何帮助!谢谢!

更新

我设法通过添加“show”操作的网址映射来修复它

问题可能来自网址映射错误。 我在urlmappings.groovy

中定义了这个
    "/uni/create"(controller:"uni"){
        action = [GET:"create", POST:"createDetail"]
    }

这会以某种方式导致它生成错误的链接。我不知道为什么,如果有人可以解释它会很好

在“创建”之前添加此行后,问题就消失了。

    "/uni/show/$id"(controller:"uni",action:"show")

2 个答案:

答案 0 :(得分:3)

您可能在UrlMappings.groovy中遇到问题。

反向网址映射中有一些open bugs。您使用的是Grails版本?

解决一些错误的最佳方法是使用named url mappings。在你的情况下,这是不必要的。

答案 1 :(得分:0)

如果未定义操作,您将获得默认行为

http://grails.org/doc/1.1/ref/Tags/createLink.html

action(可选) - 要在链接中使用的操作的名称,如果未指定,则将链接默认操作