我将名为grossScores的地图传递给GSP,并且需要使用GSP中的另一个变量来引用地图的各个实例。例如,
grossScore.Bob = 5
发布How to reference a grails GSP model variable indirectly e.g. via .get(...)很有帮助,但我仍然无法到达那里。
我试过了:
${grossScore."{$player}"}
${pageScope.getProperty("grossScore.${player}")}
${request.getAttribute("grossScore.${player}")}
有什么建议吗?
答案 0 :(得分:5)
尝试:
${grossScores.get(player)}
假设地图的名称是grossScores,如您的问题所示。
答案 1 :(得分:0)
你在第一次尝试中放错了$ -symbol。也可以引用如下值:
${grossScore."${player}"}
但请注意,如果您在grails标记的属性中使用此构造,则此解决方案会产生问题,例如:
<g:set var="playerScores" value="${grossScore."${player}"}" />
不起作用,playerScores
将不会被设置。但是,根本没有显示语法错误,该属性只是被忽略。这可能会导致很多混乱。如果你想使用这种写作,那么你需要使用不同的引号:
<g:set var="playerScores" value='${grossScore."${player}"}' />