Como referenciar uma variável de modelo GSP grails indiretamente, p. via .get (…)
Estou usando um GSP para enviar e-mails com base no plug-in MailService. O fechamento sendMail passa (entre outros)body(view:..., model:myModel)
Eu sei que posso acessar todos os itens do mapa myModel usando apenas${itemName}
no SPG. No entanto, como às vezes quero criar o nome do item dinamicamente, como'item'+i
, Preciso ter algum método envolvente para acessar a variável
Eu já tentei${model.get('item'+i)
e${params.get('item'+i)
, mas o modelo é nulo e params é um mapa vazio. Eu também tentei o pageScope, mas apesar de poder acessar um item via${pageScope.itemName
Eu não posso usar${pageScope.get('item'+i)}
porque o pageScope não é um mapa.
Provavelmente, existem várias soluções para resolver isso; Eu ficaria feliz em um fácil ;-). Uma solução que vejo é passar o myModel como o único parâmetro e sempre usarmyModel.get(...)
, no entanto, isso significaria que eu precisava alterar todos os meus GSPs existentes para sempre me referir ao myModel em vez de acessar itens (com nomes fixos) diretamente; portanto, se não houver uma maneira de alterar o modelo passado para o GSP, esse seria o meu favorito.
Se alguém também pudesse dizer algumas palavras sobre a diferença de modelo e parâmetros neste contexto, isso seria útil adicionalmente!