我正在使用 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 的模型,这将是我最喜欢的。
如果有人也可以在这种情况下就模型和参数的区别说几句话,这将另外有帮助!