为什么 g:link 忽略请求参数?
why is g:link ignoring request params?
在我的 Grails 应用程序中,我有一个 URL 直接映射到 UrlMappings.groovy
中的视图
"/geolocation"(view: "/geolocation/index")
我正在尝试为该视图生成一个 link,其中包含以下请求参数:
<g:link elementId="btnSrcDest" uri="/geolocation" class="mapInfo"
params="[mapType: 'foo']">
Click me
</g:link>
但这会生成以下内容 HTML
<a class="mapInfo" id="btnSrcDest" href="/myApp/geolocation">
Click me
</a>
而我期待的是:
<a class="mapInfo" id="btnSrcDest" href="/myApp/geolocation?mapType=foo">
Click me
</a>
为什么 g:link
的 params
属性被忽略了?
如果您使用 uri
属性,那么它会被假定为完整的(相对于 webapp)link 并且不会进行进一步的处理。您可以尝试将其改为命名 URL 映射
name geo:"/geolocation" {
view = "/geolocation/index"
}
然后使用
<g:link elementId="btnSrcDest" mapping="geo" class="mapInfo"
params="[mapType: 'foo']">
在我的 Grails 应用程序中,我有一个 URL 直接映射到 UrlMappings.groovy
"/geolocation"(view: "/geolocation/index")
我正在尝试为该视图生成一个 link,其中包含以下请求参数:
<g:link elementId="btnSrcDest" uri="/geolocation" class="mapInfo"
params="[mapType: 'foo']">
Click me
</g:link>
但这会生成以下内容 HTML
<a class="mapInfo" id="btnSrcDest" href="/myApp/geolocation">
Click me
</a>
而我期待的是:
<a class="mapInfo" id="btnSrcDest" href="/myApp/geolocation?mapType=foo">
Click me
</a>
为什么 g:link
的 params
属性被忽略了?
如果您使用 uri
属性,那么它会被假定为完整的(相对于 webapp)link 并且不会进行进一步的处理。您可以尝试将其改为命名 URL 映射
name geo:"/geolocation" {
view = "/geolocation/index"
}
然后使用
<g:link elementId="btnSrcDest" mapping="geo" class="mapInfo"
params="[mapType: 'foo']">