2011-12-21 20 views
12

Estoy buscando la diferencia entre spring: bind y form: form libraries cuando envían un formulario.Spring MVC: Diferencia entre spring: bind y form: formulario

Un fragmento de mi JSP es el siguiente:

<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> 
.... 

Al ver como he indicado mi variable de ruta y esto quedará atado a mi modelAttribute, ¿significa esto que no necesito de primavera: se unen?

Gracias

Respuesta

24

Normalmente no es necesario utilizar <spring:bind> si ya utiliza form taglib.

Básicamente lo mismo con respecto a los atributos del modelo, pero las etiquetas de form taglib también generan el marcado de formulario HTML, mientras que con <spring:bind> necesita generar el marcado usted mismo.

El siguiente código con form tags:

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

es similar al código siguiente con <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> es útil cuando se necesita algo personalizado, que no pueden ser alcanzados por form taglib .

+0

Bien explicado, gracias – DJ180

Cuestiones relacionadas