2010-12-14 15 views
6

He estado leyendo documentos y tutoriales sobre spring (3.0), así que he aprendido a devolver ModelAndView con el nombre JSP y un mapa como modelo. También aprendí que en un JSP, si quieres acceder a una de las claves de ese mapa, hazlo ${attributename} y así sucesivamente. Eso es JSP EL. Ahora mis preguntas:¿A dónde va el modelo de resorte que se pasa a un JSP?

  • ¿A qué objeto de la página está accediendo EL? ¿Eso es PageContext? Traté de encontrar esas claves en PageContext.getAttribute pero no están allí.
  • Cualquiera que sea el objeto, ¿es automático que las cosas en el modelo vayan allí?

Siéntase libre de agregar recursos para aclarar mis ideas

Respuesta

6

Cuando haces algo como ${attributename}, JSP EL comprobará una variedad de fuentes para encontrarlo, incluyendo la página y solicitar contextos (en ese orden).

Cuando el controlador de resorte devuelve un modelo (por ejemplo dentro de la ModelAndView), este modelo se descompone por la clase de la primavera AbstractView y se inserta en el contexto de la petición (esto es la parte "mágica"), de modo que cuando su expresión JSP EL refiere a un artículo del modelo, está disponible para ser utilizado.

0

Por lo general, se almacenan en la solicitud. Por lo tanto, request.getAttributeNames() debería darle todo su modelo (pero utilícelo únicamente con fines educativos; de lo contrario, use EL para acceder al modelo). Dicho esto, también debe ser accesible desde el pageContext (en el alcance de la solicitud).

Y sí, se agrega automáticamente.

+0

gracias, por supuesto que voy a usar EL, pero quería saber qué pasa. – gotch4

Cuestiones relacionadas