1. 程式人生 > >ModelMap對象的 addAttribute,put兩個方法區別

ModelMap對象的 addAttribute,put兩個方法區別

對象 lan this eval 空值 lar 是否 strong return

這個是 源碼中 ModelMap的定義 類  
public class ModelMap extends LinkedHashMap<String, Object>

說明 ModelMap是繼承自LinkedHashMap的,則put方法是繼承自 HashMap的方法,沒什麽特殊
而addAttribute方法的定義
public ModelMap addAttribute(String attributeName, Object attributeValue)
{
Assert.notNull(attributeName, "Model attribute name must not be null");
put(attributeName, attributeValue);
return this;
}
其實也是調用的put方法,但是會在調用之前判斷 key值是否為null,如果為null則會報錯
java.lang.IllegalArgumentException: Model attribute name must not be null,而put方法不會檢查key值是否會空
綜上,則
ModelMap對象的 addAttribute,put兩個方法有什麽區別就是

addAttribute是不允許添加空值的key,put是允許的

ModelMap對象的 addAttribute,put兩個方法區別