Grails:g:link 不使用 dynamic/GString 键应用参数

Grails: g:link not applying params with dynamic/GString keys

我正在尝试创建一个带有动态 link 的 link,例如:

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

其中 nextDashboardUriMap.queryStringId 包含 xyzentityId 包含 12

我原以为 link 的 url 是 http://website.com/controller/action?xyz=18,但 <g:link/> 一直给我 http://website.com/controller/action?xyz

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

怎么样

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

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

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

这里不需要使用GStrings,直接说即可

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