Wie indirekt auf eine Grails-GSP-Modellvariable verwiesen wird, z. via .get (…)

Ich verwende einen GSP zum Versenden von E-Mails, die auf dem MailService-Plug-In basieren. Der sendMail-Abschluss wird (unter anderem)body(view:..., model:myModel)

Ich weiß, dass ich auf jedes Element der myModel Map zugreifen kann, indem ich einfach @ benutz${itemName} im APS. Da ich aber manchmal den Itemnamen dynamisch wie @ aufbauen möch'item'+i, Ich brauche eine umgebende Methode, um auf die Variable zuzugreifen.

Ich habe es schon versucht${model.get('item'+i), und${params.get('item'+i), aber model ist null und params ist eine leere Map. Ich habe auch pageScope ausprobiert, kann aber über @ auf einen Artikel zugreife${pageScope.itemName, Ich kann nicht benutzen${pageScope.get('item'+i)} weil pageScope keine Map ist.

Möglicherweise gibt es mehrere Lösungen, um dieses Problem zu lösen. Ich würde mich über eine einfache freuen ;-). Eine Lösung, die ich sehe, besteht darin, myModel als einzigen Parameter zu übergeben und dann immer @ zu verwendemyModel.get(...), dies würde jedoch bedeuten, dass ich alle meine vorhandenen GSPs ändern müsste, um immer auf myModel zu verweisen, anstatt direkt auf Elemente (mit festen Namen) zuzugreifen. Wenn es also eine Möglichkeit gibt, bei der ich das an den APS übergebene Modell nicht ändern muss, wäre dies mein Favorit.

Wenn jemand in diesem Zusammenhang auch ein paar Worte über den Unterschied zwischen Modell und Parameter sagen könnte, wäre dies zusätzlich hilfreich!

Antworten auf die Frage(6)

Ihre Antwort auf die Frage