Grails:g:链接不使用动态/ GString键的params

时间:2015-02-20 07:57:58

标签: grails grails-2.0

我尝试使用动态链接创建链接,如:

<g:link action="${nextDashboardUriMap.nextAction}" params="${["$nextDashboardUriMap.queryStringId": "$entityId" ]}">
        ${entityName}
</g:link>

其中nextDashboardUriMap.queryStringId包含xyzentityId包含12

我希望该链接的网址为http://website.com/controller/action?xyz=18,但<g:link/>始终为我提供http://website.com/controller/action?xyz

我尝试用字符串文字替换entityId

3 个答案:

答案 0 :(得分:2)

你不需要在这里使用GStrings,你可以简单地说

<g:link action="${nextDashboardUriMap.nextAction}"
        params="[(nextDashboardUriMap.queryStringId):entityId]">

答案 1 :(得分:1)

似乎可能是这个错误:GRAILS-9774 - 如果params map中的键是GString类型,则值会丢失。将密钥转换为String可以解决您的问题:

<g:link action="${nextDashboardUriMap.nextAction}"
params="${[("$nextDashboardUriMap.queryStringId".toString()): "$entityId" ]}">
(...) 

答案 2 :(得分:0)

怎么样

<%
     Map paramsMap = [:]
     paramsMap[nextDashboardUriMap.queryStringId] = entityId
%>
<g:link action="${nextDashboardUriMap.nextAction}" params="${paramsMap}" >${entityName}
</g:link>