Куда идет Spring Model, которая передается в JSP? - PullRequest
7 голосов
/ 14 декабря 2010

Я читал документы и учебники о Spring (3.0), поэтому я научился возвращать ModelAndView с именем JSP и картой в качестве модели. Я также узнал, что в JSP, если вы хотите получить доступ к одному ключу этой карты, вы делаете ${attributename} и так далее. Это JSP EL. Теперь мои вопросы:

  • К какому объекту страницы обращается EL? Это PageContext? Я пытался найти эти ключи в PageContext.getAttribute, но их там нет.
  • Каким бы ни был объект, автоматически ли все вещи в модели идут туда?

Не стесняйтесь добавлять ресурсы, чтобы разъяснить мои идеи

Ответы [ 2 ]

6 голосов
/ 14 декабря 2010

Когда вы делаете что-то вроде ${attributename}, JSP EL проверит множество источников, чтобы найти его, включая контексты страницы и запроса (в указанном порядке).

Когда ваш контроллер Spring возвращает модель (например, внутри ModelAndView), эта модель декомпозируется на класс AbstractView Spring и вставляется в контекст запроса (это «магическая» часть), так что когда ваш JSP EL выражение относится к элементу из модели, он доступен для использования.

0 голосов
/ 14 декабря 2010

Они обычно хранятся в запросе. Поэтому request.getAttributeNames() должен предоставить вам всю вашу модель (но используйте ее только в образовательных целях - в противном случае используйте EL для доступа к модели). Тем не менее, он также должен быть доступен из pageContext (в области запроса).

И да, оно добавляется автоматически.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...