Ricevo una NullPointerException quando accedo ai vincoli statici
Domanda
Il codice
${personRequest.constraints.requestStatus.inList}
nel mio file gsp genera un NullPointerException
, ma nuovi vincoli PersonRequest (). vincoli ..
funzionano. Perché? vincoli
non è statico?
Soluzione
Copiato da qui (mailing list utente grails)
ma perché accedere ai campi statici non funziona?
Perché i " vincoli " campo statico è una proprietà di chiusura. Non ha sotto-proprietà relative al vincoli.
Grails valuta questa chiusura usando a costruttore di vincoli che monitora & Quot; chiama " a metodi che non esistono, ovvero i nomi delle proprietà che usi:
type( inList: [xxxxx])
... fa sì che una chiamata al metodo " digiti " con un parametro Map contenente " inList " == > un valore.
Da queste informazioni, Grails costruisce a elenco di tutti i vincoli
disponibile e li lega al futuro istanze della classe di dominio.Quindi, quando accedi a User.constraints staticamente, stai ricevendo un video Chiusura.
Potremmo cercare di sostituire il valore della proprietà dei vincoli statici in fase di esecuzione dopo aver valutato il Chiusura con cui è inizializzato. Tuttavia questo potrebbe essere un po 'troppo "troppo" Magia. Cosa pensano le persone?
FYI è così adesso perché fino a I vincoli 0.4 (se ricordo) non erano statici e in 0.4 possono essere ancora non statico. Solo in 0,5
lanceremo un'eccezione / ignoreremo vincoli non statici.