2011-12-21 18 views
12

Podczas przesyłania formularza czekam na różnicę między bibliotekami: wiosna: powiązanie i forma: formularz.Sprężyna MVC: Różnica między sprężyną: powiązanie i forma: formularz

fragment mojego JSP jest następujący:

<form:form modelAttribute="testRulesForm"> 
.... 
<td> 
    <form:checkbox path="rules[${counter.index}].isActive" value="rules[${counter.index}].isActive"/> 
</td> 
<td> 
    <form:select path="rules[${counter.index}].leftCondition.name"> 
     <form:options items="${testRulesForm.ruleAttributes}" itemLabel="name" itemValue="name" /> 
    </form:select> 
</td> 
<td> 
    <form:select path="rules[${counter.index}].operator"> 
     <form:options itemLabel="operator" itemValue="operator" /> 
    </form:select> 
</td> 
.... 

Widząc jak już moja zmienna ścieżka określona i ten będzie związany z moim modelAttribute, to znaczy, że nie muszę WIOSNA wiążą?

Dzięki

Odpowiedz

24

Normalnie nie trzeba używać <spring:bind> jeśli używałeś form TagLib.

Zasadniczo robią to samo w odniesieniu do atrybutów modelu, ale znaczniki z taglib form również generują znaczniki formularzy HTML, natomiast z <spring:bind> trzeba samodzielnie generować znaczniki.

Poniższy kod z form tagi:

<form:form modelAttribute = "foo"> 
    <form:input path = "bar" /> 
</form:form> 

jest podobny do następującego kodu z <spring:bind>:

<spring:bind path = "foo"> 
    <form method = "get"> 
     <spring:bind path = "bar"> 
      <input name = "bar" value = "${status.displayValue}" /> 
     </spring:bind> 
    </form> 
</spring:bind> 

<spring:bind> jest przydatna, gdy trzeba coś dostosowane, że nie można osiągnąć przez form TagLib .

+0

Dobrze wyjaśnione, dziękuję – DJ180

Powiązane problemy