2011-07-27 27 views
10

Tengo problemas para enviar los datos del formulario en la primavera. <spring:bind> parece ser parte de la solución. Ver mi problema completo here.¿Para qué es <spring:bind>? ¿Cuándo usarlo y cuándo no usarlo?

La documentación de BindTag found here no es clara para mí. ¿Por qué es necesario <spring:bind> en algunos casos para enviar datos, mientras que no es necesario en la mayoría de los casos?

¿Cuáles son los casos típicos en los que se debe usar <spring:bind> para que un formulario funcione correctamente?

Respuesta

1

Aunque nunca he usado esta etiqueta, mi comprensión de la documentación es la siguiente. Una etiqueta le proporcionará información sobre el estado de enlace de una propiedad de formulario a un bean. Por ejemplo, en:

<form:form modelAttribute="employee"> 
    <form:input path="name"/> 
    <spring:bind path="name"/> 
    <spring:bind path="employee"/> 
</form:form> 

La etiqueta mostrará (o exponer a través de un objeto BindStatus) todos los errores que se han producido con el atributo de nombre (el primer caso) y todos los errores en la entidad de los empleados y sus atributos (la segunda caso). No estoy seguro de que esta etiqueta tenga algo que ver con el éxito de la presentación de datos, sino que se usa como herramienta de información.

2

Encontrarás la etiqueta <spring:bind> útil cuando quieras analizar múltiples objetos desde un formulario de entrada. Aquí hay un ejemplo modificado del doc de Spring (http://docs.spring.io/spring/docs/1.2.6/taglib/tag/BindTag.html):

<form method="post"> 
     ## now bind on the name of the company 
     <spring:bind path="company.name"> 
     ## render a form field, containing the value and the expression 
     Name: <input 
      type="text" 
      value="<c:out value="${status.value}"/>" 
      name="<c:out value="${status.expression}"/>"> 
     </spring:bind> 

<spring:bind path="address.street"> 
    Name: <input 
     type="text" 
     value="<c:out value="${status.value}"/>" 
     name="<c:out value="${status.expression}"/>"> 
</spring:bind> 
<input type="submit"> 
</form> 
Cuestiones relacionadas