Как ссылаться на экземпляр карты Grails в GSP, используя переменную - PullRequest
2 голосов
/ 13 августа 2011

Я передаю карту с именем grossScores в GSP и должен ссылаться на отдельные экземпляры карты, используя другую переменную в GSP.Например,

grossScore.Bob = 5

Публикация Как косвенно ссылаться на переменную модели GSP Grails, например, через .get (...) , но я все еще не смог туда добраться.

Я пробовал:

${grossScore."{$player}"}
${pageScope.getProperty("grossScore.${player}")}
${request.getAttribute("grossScore.${player}")}

Есть предложения?

Ответы [ 2 ]

5 голосов
/ 13 августа 2011

Попробуйте:

${grossScores.get(player)}

при условии, что название карты - grossScores, как в вашем вопросе.

0 голосов
/ 15 августа 2011

Вы потеряли символ $ в первой попытке. Также возможно ссылаться на значение как:

${grossScore."${player}"}

Обратите внимание, однако, что это решение создаст проблемы, если вы используете эту конструкцию в атрибуте тега grails, например ::

<g:set var="playerScores" value="${grossScore."${player}"}" />

НЕ будет работать, и playerScores НЕ будет установлен. Однако синтаксическая ошибка НЕТ отображается вообще, атрибут просто игнорируется. Это может привести к путанице. Если вы хотите использовать этот вид письма, то вам нужно использовать разные кавычки:

<g:set var="playerScores" value='${grossScore."${player}"}' />
...