2

我在使用 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"

任何帮助是极大的赞赏!谢谢!

更新

我设法通过为“显示”操作添加一个 url 映射来修复它

问题可能来自 url 映射错误。我在我的 urlmappings.groovy 中定义了这个

    "/uni/create"(controller:"uni"){
        action = [GET:"create", POST:"createDetail"]
    }

这以某种方式导致它生成错误的链接。不知道为什么,如果有人能解释一下就好了

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

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

2 回答 2

3

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

反向 url 映射中有一些未解决的错误。您使用的是什么 Grails 版本?

The best way to get around some of the bugs is to use named url mappings. In your case that shouldn't be necessary.

于 2012-04-16T19:13:18.433 回答
0

if the action is not defined you will get default behavior

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

action (optional) - The name of the action to use in the link, if not specified the default action will be linked

于 2012-04-16T22:42:15.303 回答