2009-03-05 11 views
28

Lassen Sie uns auf das folgende Beispiel diskutieren:Wie ist die Feder MVC Feder: Binde Tag arbeiten und was sind die Bedeutung von status.expression und status.value?

<spring:bind path="user.userName"> 
    <input type="text" name="${status.expression}" value="${status.value}"/> 
    <span class="fieldError">${status.errorMessage}</span> 
</spring:bind> 

Wenn diese Ansicht Schnipsel gerendert wird, was zu tun $ {status.expression} und $ {status.value} erhalten ausgewertet? Woher kommen diese Werte?

Antwort

24

Eine Erläuterung dazu, was die Statusvariablen bedeuten, finden Sie unter link.

  • status.expression: Der Ausdruck, der die Bohne oder Eigenschaft verwendet wurde
  • status.value abzurufen: der Ist-Wert der Bohne oder Eigentum (transformiert unter Verwendung von registrierten PropertyEditors)
  • status.errorMessages: ein Array von Fehlermeldungen, die aus der Validierung resultieren

Das Statusobjekt wird ausgewertet w Wenn die Bindung erfolgt ist.

Denken Sie auch daran, dass Spring 2.0 neue Form-Tags eingeführt hat, die wahrscheinlich besser für Ihre Bedürfnisse geeignet sind.

+0

Danke für die Erinnerung, dass der Wert von 'status.value' von dem eingetragenen Property erzeugt wird. Ich habe einen benutzerdefinierten Editor zum Festlegen einer Eigenschaft implementiert und die 'getAsText()' Methode weggelassen. Dies führt zu "Null" -Saiten! – Koraktor

6
+0

Danke für die Verknüpfung, aber es ist schrecklich schwach. Es wäre schön, wenn sie zumindest mit [BindStatus] (http://static.springsource.org/spring/docs/3.1.x/javadoc-api/org/springframework/web/servlet/support/BindStatus.html) verbunden wären . –