2010-05-25 35 views
28

在Spring MVC中使用ModelMap而不是簡單的Map有什麼好處。我在代碼實現中看到,他們將添加在地圖中的屬性的數據類型作爲關鍵字放置在表單上。ModelMap在Spring中的用法

任何人都可以用一個例子來解釋。

回答

44

ModelMapLinkedHashMap,並提供一些額外的便利,以使其更容易一點通過控制器

  • addAttribute使用可以只用一個值調用,並且地圖鍵,然後從類型推斷。
  • addAttribute方法全部返回ModelMap,因此您可以將鏈式方法調用在一起,例如, modelMap.addAttribute('x', x).addAttribute('y',y)
  • addAttribute方法檢查該值不爲空
  • ModelMap通用型固定在Map<String, Object>,這是唯一一個有意義的圖模型。

所以沒有什麼驚天動地的,但足以使它比原始Map好一點。 Spring會讓你使用任何一個。

您也可以使用Model接口,該接口僅提供addAttribute方法,並且由ExtendedModelMap類實現,該類本身增加了更多的便利。

+1

非常好的描述。我想知道'ModelMap.put'和'ModelMap.addAttribute'方法之間的區別。我知道put方法是可用的,因爲它擴展了LinkedHashMap。使用任何一種方法在性能上有什麼不同?提前致謝。 – 2013-03-12 10:40:17

+0

我想指出,這個答案在2016年4月的另一個網站的帖子中逐字顯示: http://crunchify.com/spring-mvc-how-to-access-modelmap-values-in -a-JSP / – ndurante 2016-04-21 18:37:14

2

ModelMap.addAttribute會做NULL檢查,ModelMap.put從LinkedHashMap的

0

ModalMap繼承構建與UI工具使用的模型數據時擴展LinkedHashMap的

地圖的實現使用。支持鏈接調用和模型屬性名稱的生成。

該類用作Servlet和Portlet MVC的通用模型持有者,但不受任何一個綁定。查看出於同樣目的的基於Java-5的接口變體的Model接口。

相關問題