2010-12-14 2 views
6

Ho letto documenti e tutorial su spring (3.0), quindi ho imparato come restituire uno ModelAndView con il nome JSP e una mappa come modello. Ho anche appreso che in un JSP, se vuoi accedere a una chiave di quella mappa, fai ${attributename} e così via. Questo è JSP EL. Ora le mie domande:Dove va il modello Spring che viene passato a un JSP?

  • Quale oggetto della pagina è l'accesso EL? È quello PageContext? Ho provato a trovare quelle chiavi in ​​PageContext.getAttribute ma non ci sono.
  • Qualunque sia l'oggetto, è automatico che le cose nel modello andino lì?

Sentitevi liberi di aggiungere risorse per chiarire le mie idee

risposta

6

Quando fai qualcosa di simile ${attributename}, JSP EL controllerà una varietà di fonti per trovarlo, compresa la pagina e richiedere contesti (in questo ordine).

Quando il controller Primavera restituisce un modello (ad esempio all'interno del ModelAndView), questo modello è decomposto per classe di primavera AbstractView e inserita nel contesto di richiesta (questa è la parte "magica"), in modo che quando la vostra espressione JSP EL riferisce a un oggetto dal modello, è disponibile per essere utilizzato.

0

Di solito vengono memorizzati nella richiesta. Quindi request.getAttributeNames() dovrebbe darti tutti i tuoi modelli (ma usarli solo a scopo didattico - altrimenti usa EL per accedere al modello). Detto questo, dovrebbe essere accessibile anche da pageContext (in ambito di richiesta).

E sì, viene aggiunto automaticamente.

+0

grazie, ovviamente userò EL, ma volevo sapere cosa succede. – gotch4