我正在使用 GSP 基于 MailService 插件发送电子邮件。sendMail 闭包通过(以及其他)body(view:..., model:myModel)
我知道我可以访问仅${itemName}
在 GSP 中使用的 myModel Map 的每个项目。但是,由于我有时想动态地构建项目名称'item'+i
,所以我需要一些周边方法来访问变量。
我已经尝试过${model.get('item'+i)
, 和${params.get('item'+i)
, 但是 model 是 null 并且 params 是一个空的 Map。我也尝试了 pageScope,但是虽然我可以通过 访问项目,但${pageScope.itemName
我不能使用${pageScope.get('item'+i)}
,因为 pageScope 不是 Map。
可能有多种解决方案可以解决此问题;我会很高兴有一个简单的;-)。我看到的一种解决方案是将 myModel 作为唯一参数传递,然后始终使用myModel.get(...)
,但这意味着我必须将所有现有的 GSP 更改为始终引用 myModel 而不是直接访问项目(具有固定名称);所以如果有一种方法我不必更改传递给 GSP 的模型,这将是我最喜欢的。
如果有人也可以在这种情况下就模型和参数的区别说几句话,这将另外有帮助!