如何使用变量引用GSP中的Grails映射实例

时间:2011-08-13 18:06:39

标签: grails map params gsp

我将名为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}")}

有什么建议吗?

2 个答案:

答案 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}"}' />