我在使用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")
答案 0 :(得分:3)
您可能在UrlMappings.groovy中遇到问题。
反向网址映射中有一些open bugs。您使用的是Grails版本?
解决一些错误的最佳方法是使用named url mappings。在你的情况下,这是不必要的。
答案 1 :(得分:0)
如果未定义操作,您将获得默认行为
http://grails.org/doc/1.1/ref/Tags/createLink.html
action(可选) - 要在链接中使用的操作的名称,如果未指定,则将链接默认操作