Spring define sus propias librerías de tags de forma similar a las ofrecidas por JSTL. Pero como de costumbre su utilización es opcional, no se exige su uso.

Dependencias

Para los ejemplos de esta parte se utilizará JSTL, por lo que es necesario incluir la correspondiente dependencia en el fichero pom.xml de Maven:

Tag Library

Spring define actualmente dos librerías de tags. La primera es de uso general, para el manejo de error, soporte para themes, internacionalización y binding, principalmente:

La segunda es más específica para la gestión de formularios:

spring:message

Este tag proporciona el texto de un mensaje a partir de su código, resuelto en base a la configuración de internacionalización:

form:form

Este tag contiene a todos los demás tags de formularios, ofreciendo sobre todo facilidades para el binding.

Consideremos por ejemplo la siguiente clase POJO:

Un manejador puede devolver un objeto de este tipo en el modelo:

De forma que la página JSP correspondiente puede utilizarlo directamente:

El atributo modelAttribute establece el nombre del objeto dentro del modelo que contiene los datos en proceso. Por defecto su valor es “command” por compatibilidad con JSP, y de hecho, este valor también se puede cambiar utilizando commandName.

Los atributos de tipo path permiten indicar una propiedad dentro del objeto. De forma que path="nombre" se resuelve como cliente.getNombre().

Cuando se pulse al botón de enviar, el manejador correspondiente a esa parte recibe un objeto de la clase adecuada:

Controles

Dentro del tag de formulario se pueden incluir los siguientes controles:

form:checkbox
form:checkboxes
form:radiobutton
form:radiobuttons
form:password
form:select
form:option
form:options
form:textarea
form:hidden
form:errors

Todos son equivalentes a sus controles homónimos en HTML, pero con las capacidades de binding añadidas a través del atributo path. Además, los controles que tienen el nombre en plural admiten un atributo items que facilita renderizar directamente los valores de una colección: