【问题标题】:Grails, createLink generates wrong linkGrails,createLink 生成错误的链接
【发布时间】:2012-04-16 18:46:32
【问题描述】:

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

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

我在“create”前加上这行后,问题就消失了。

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

【问题讨论】:

  • "/uni/show/$id"(controller:"uni",action:"show") 这对我有帮助,谢谢。顺便说一句,9 年后这仍然是问题

标签: grails url-mapping


【解决方案1】:

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

在反向 url 映射中有一些 open bugs。您使用的是哪个 Grails 版本?

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

【讨论】:

  • 我正在使用 Grails 2.0。我将检查名称 url 映射。谢谢
【解决方案2】:

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

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

action (optional) - 在链接中使用的动作的名称,如果没有指定默认的动作将被链接

【讨论】:

    猜你喜欢
    • 2015-08-17
    • 1970-01-01
    • 2019-08-15
    • 1970-01-01
    • 1970-01-01
    • 2011-02-15
    • 1970-01-01
    • 1970-01-01
    • 2011-06-23
    相关资源
    最近更新 更多