我在使用 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")
最佳答案
您可能在 UrlMappings.groovy 中遇到问题。
有一些open bugs在反向 url 映射中。您使用的 Grails 版本是什么?
解决一些错误的最佳方法是使用 named url mappings 。在你的情况下,这应该是没有必要的。
关于Grails,createLink 生成错误的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10179807/