Domanda

Il codice

${personRequest.constraints.requestStatus.inList}

nel mio file gsp genera un NullPointerException , ma nuovi vincoli PersonRequest (). vincoli .. funzionano. Perché? vincoli non è statico?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top