Как косвенно ссылаться на переменную модели GSP Grails, например, через .get (…)
Я использую GSP для отправки электронных писем на основе плагина MailService. Закрытие sendMail проходит (среди прочих)body(view:..., model:myModel)
Я знаю, что могу получить доступ к каждому элементу карты myModel, просто используя${itemName}
в ВСП. Однако, как я иногда хочу построить имя элемента динамически, как'item'+i
Мне нужно иметь некоторый окружающий метод для доступа к переменной.
Я уже пробовала${model.get('item'+i)
, а также${params.get('item'+i)
, но модель пуста, а params - пустая карта. Я также пробовал pageScope, но хотя я могу получить доступ к элементу через${pageScope.itemName
Я не могу использовать${pageScope.get('item'+i)}
потому что pageScope не является картой.
Вероятно, есть несколько решений, чтобы решить эту проблему; Я был бы рад о простом ;-). Одно решение, которое я вижу, состоит в том, чтобы передать myModel в качестве единственного параметра, а затем всегда использоватьmyModel.get(...)
однако это означало бы, что мне пришлось изменить все мои существующие GSP, чтобы они всегда ссылались на myModel вместо прямого доступа к элементам (с фиксированными именами); так что если есть способ, при котором мне не нужно менять модель, передаваемую в GSP, это будет моим любимым.
Если бы кто-то мог также сказать несколько слов о разнице модели и параметров в этом контексте, это было бы дополнительно полезно!