我尝试使用动态链接创建链接,如:
<g:link action="${nextDashboardUriMap.nextAction}" params="${["$nextDashboardUriMap.queryStringId": "$entityId" ]}">
${entityName}
</g:link>
其中nextDashboardUriMap.queryStringId
包含xyz
,entityId
包含12
。
我希望该链接的网址为http://website.com/controller/action?xyz=18
,但<g:link/>
始终为我提供http://website.com/controller/action?xyz
。
我尝试用字符串文字替换entityId
。
答案 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>