DRY-Verwendung von Constraints in Grails-View

Um dem Prinzip zur Redundanzvermeidung (DRY – Don’t repeat yourself) gerecht zu werden, kann man in Grails auf die Constraints einer Domainklasse in Grails auf einfache Art und Weise auch von anderen Stellen aus zugreifen – beispielsweise in der View oder im Controller.

Folgendes Beispiel zeigt die Verwendung des size Constraints um die maximale Länge (maxlength) eines INPUT zu beschränken:

Constraint aus dem Grails-Controller übergeben

z.B. in Action “create” von MyDomainController.groovy:

// Constraint in Controller abrufen und an die View übergeben
return [ titleMax:    MyDomain.constraints.title.size.max() ]

Constraint in der Grails-View verwenden

z.B. in mydomain/create.gsp

<!-- Constraint in der View nutzen -->
<g:textField name="title" maxlength="${titleMax}" />

Grails Framework Reference: constraints