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
包含 xyz
,entityId
包含 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]">
我正在尝试创建一个带有动态 link 的 link,例如:
<g:link action="${nextDashboardUriMap.nextAction}" params="${["$nextDashboardUriMap.queryStringId": "$entityId" ]}">
${entityName}
</g:link>
其中 nextDashboardUriMap.queryStringId
包含 xyz
,entityId
包含 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]">