Ich erhalte eine NullPointerexception, wenn ich auf statische Einschränkungen zugreift

StackOverflow https://stackoverflow.com/questions/214914

  •  03-07-2019
  •  | 
  •  

Frage

Der Code

${personRequest.constraints.requestStatus.inList}

In meiner GSP -Datei wirft a NullPointerException, aber new PersonRequest().constraints.. Arbeiten. Wieso den? Nicht constraints statisch?

War es hilfreich?

Lösung

Kopiert von hier (Grails-User Mailingliste)

Aber warum funktioniert es nicht, statische Felder zu erreichen?

Weil das statische Feld "Einschränkungen" ein Schließgefühl ist. Es hat keine Unterausbrüche in Bezug auf die Einschränkungen.

Grails bewertet diesen Schließ mit einem Einschränkungserbauer, der "Anrufe" auf Methoden überwacht, die nicht existieren, dh die von Ihnen verwendeten Eigenschaftennamen:

type( inList: [xxxxx])

... verursacht einen Methodenaufruf zum "Typ" mit einem Kartenparameter, der "inlist" ==> Einen Wert enthält.

Aus diesen Informationen erstellt Grails eine Liste aller Einschränkungen
Verfügbar und bindet sie an zukünftige Instanzen der Domänenklasse.

Wenn Sie also auf Benutzer zugreifen. Ermittelt statisch, erhalten Sie eine
Schließung.

Wir können nach der Bewertung des Verschlusses, mit dem sie initialisiert wird, den Wert der statischen Einschränkungen zur Laufzeit ersetzt. Dies könnte jedoch ein bisschen "zu viel" Magie sein. Was denken die Leute?

Zu Ihrer Information ist es jetzt so, denn bis 0,4 (wenn ich mich erinnere) Einschränkungen nicht statisch und in 0,4 können sie immer noch nicht statisch sein. Nur in 0,5
Werden wir eine Ausnahme machen/nicht statische Einschränkungen ignorieren?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top