我使用 GSP 基于 MailService 插件发送电子邮件。 sendMail 关闭通过(除其他外)body(view:..., model:myModel)
我知道我可以使用 ${itemName}
访问 myModel Map 的每个项目。在普惠制中。但是,有时我想像 'item'+i
一样动态地构建项目名称。 ,我需要一些周围的方法来访问变量。
我已经试过了 ${model.get('item'+i)
, 和 ${params.get('item'+i)
,但模型为空,参数是一个空的 map 。我也尝试过 pageScope,但尽管我可以通过 ${pageScope.itemName
访问一个项目, 我不能用 ${pageScope.get('item'+i)}
因为 pageScope 不是 Map。
可能有多种解决方案可以解决这个问题;我很高兴有一个简单的;-)。我看到的一种解决方案是将 myModel 作为唯一参数传递,然后始终使用 myModel.get(...)
,但是这意味着我必须将所有现有的 GSP 更改为始终引用 myModel 而不是直接访问项目(具有固定名称);因此,如果有一种方法可以让我不必更改传递给 GSP 的模型,这将是我的最爱。
如果有人也可以在这种情况下就模型和参数的差异说几句话,这将更有帮助!
最佳答案
我现在使用 ${pageScope.getProperty(...)}
管理它.
关于grails - 如何间接引用 grails GSP 模型变量,例如通过 .get(...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3810844/