Использование ModelMap в Spring - PullRequest
28 голосов
/ 25 мая 2010

Каковы преимущества использования ModelMap вместо простой карты в Spring MVC. В реализации кода я вижу, что вместо этого они ставят тип данных атрибута, добавленного на карту, в качестве ключа, чтобы сделать его доступным в форме.

Может кто-нибудь объяснить примером.

Ответы [ 3 ]

46 голосов
/ 25 мая 2010

ModelMap подклассы LinkedHashMap и предоставляет некоторые дополнительные удобства, облегчающие использование контроллерами

  • addAttribute может быть вызван только со значением, а ключ карты выводится из типа.
  • Все методы addAttribute возвращают ModelMap, так что вы можете связать метод, вызываемый вместе, например, modelMap.addAttribute('x', x).addAttribute('y',y)
  • Методы addAttribute проверяют, что значения не равны нулю
  • Общий тип ModelMap зафиксирован на Map<String, Object>, который является единственным, имеющим смысл для модели представления.

Так что ничего потрясающего, но достаточно, чтобы сделать его немного лучше, чем необработанный Map. Spring позволит вам использовать любой из них.

Вы также можете использовать интерфейс Model, который предоставляет только методы addAttribute и реализуется классом ExtendedModelMap, который сам добавляет дополнительные удобства.

2 голосов
/ 14 марта 2013

ModelMap.addAttribute выполнит проверку NULL, ModelMap.put наследуется от LinkedHashMap

0 голосов
/ 08 декабря 2015

ModalMap расширяет LinkedHashMap

Реализация Map для использования при построении данных модели для использования с инструментами пользовательского интерфейса. Поддерживает связанные вызовы и генерацию имен атрибутов модели.

Этот класс служит общим держателем модели для сервлетов и портлетов MVC, но не связан ни с одним из них. Проверьте интерфейс модели для варианта интерфейса на основе Java-5, который служит той же цели.

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