Hat Grals eine nette Art der Kopierdomäneneigenschaften aus einer URL -Abfragezeichenfolge?
-
21-09-2019 - |
Frage
Ich weiß, dass Grails einen kartenbasierten Konstruktor für Domänenobjekte hat, an den Sie die Parameter einer URL an die entsprechenden Feldeinstellungen übergeben können, wobei Sie mithilfe von Introspection wie diesen ...
myDomainInstance = new MyObject(params)
Ich habe mich gefragt, ob es eine äquivalente Methode gab, um die Parameter zu nehmen und auf ein vorhandenes Objekt anzuwenden und Werte auf die gleiche Weise zu aktualisieren, wie der Kartenkonstruktor funktionieren muss, so etwas wie ...
myDomainInstance = params
oder
myDomainInstance = fromParams(params)
Bin ich nur Wunschdenken oder existiert so etwas? Ich kann es selbst codieren, möchte aber lieber nicht, wenn es bereits existiert.
Vielen Dank
Lösung
Angepasst von der Grails Benutzerhandbuch:
obj = MyObject.get(1)
obj.properties = params
Weitere Informationen finden Sie in der Dokumentation für 'Params' im Bereich Controller.
Andere Tipps
Es hängt wirklich davon ab, was Sie versuchen zu tun, aber ein gleichwertiger Ansatz verwendet Datenbank.
def sc = new SaveCommand()
bindData(sc, params)
Dies gibt Ihnen den Vorteil der Verwendung einer benutzerdefinierten Bindung. Wenn Sie sagen, Ihr Datumsformat ist nicht die Standardeinstellung, die Sie durch eine Bohne wie diese neu definieren können:
public class CustomPropertyEditorRegistrar implements PropertyEditorRegistrar {
public void registerCustomEditors(PropertyEditorRegistry registry) {
registry.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true));
}
}