2009-03-05 11 views
28

Porozmawiajmy na poniższym przykładzie:W jaki sposób sprężyna MVC Spring: bind działa i jakie są znaczniki statusu.expression i status.value?

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

Kiedy pogląd ten fragment zostanie wygenerowana, co zrobić $ {status.expression} i $ {status.value} uzyskać oceniona? Skąd pochodzą te wartości?

Odpowiedz

24

Zobacz, co to są zmienne statusu, patrz: link.

  • status.expression: ekspresji, który został wykorzystany do uzyskania fasoli lub własności
  • status.value: rzeczywista wartość świętojańskiego lub właściwości (transformować stosując zarejestrowane PropertyEditors)
  • status.errorMessages: tablica komunikatów o błędach, wynikająca z walidacji:

Obiekt statusu jest oceniany w gdy wiązanie jest gotowe.

Pamiętaj także, że Spring 2.0 wprowadził nowe tagi formularzy, które prawdopodobnie lepiej odpowiadają Twoim potrzebom.

+0

Dzięki za przypomnienie, że wartość 'status.value' jest generowany przez zarejestrowanego PropertyEditor. Zaimplementowałem niestandardowy edytor do ustawiania właściwości i pominąłem metodę 'getAsText()'. Spowoduje to "null" łańcuchy! – Koraktor

6
+0

Dzięki za powiązanie tego, ale jest okropnie słaby. Byłoby miło, gdyby były połączone z [BindStatus] (http://static.springsource.org/spring/docs/3.1.x/javadoc-api/org/springframework/web/servlet/support/BindStatus.html) co najmniej . –

Powiązane problemy