2017-05-05 42 views
1

中使用和不使用@modelAttribute的彈簧數據綁定我讀過在方法param中添加@modelAttribute將傳入數據綁定到對象並將其作爲屬性添加到模型對象。在方法參數

@RequestMapping(value = "/list", method = RequestMethod.GET) 
public String list(@ModelAttribute User user) { 
    return "list"; 
} 

,如果這是通過/列表?名稱=無名,在的List.jsp「無名」可以使用{user.name},因爲它被添加爲模型的List.jsp屬性看到訪問。這對我來說很清楚。

但如果我不

@RequestMapping(value = "/list", method = RequestMethod.GET) 
public String list(User user) { 
    return "list"; 
} 

「無名」 仍然可以使用,當通過/列表?名稱=無名訪問{user.name}可以看出。我認爲用戶對象不會被添加到模型中,因爲它沒有@ModelAttribute註解。

+0

它仍然會綁定BUT,因爲您聲明以後無法在您的頁面中訪問它(因爲它不是模型對象),其他的東西如訪問綁定結果和其他計數爲'@ ModelAttribute'註釋參數的特性不適用於此。 –

+0

是的,它仍然會綁定,但我的問題是它仍然被添加爲list.jsp的模型屬性,這不是我的預期行爲,因爲它沒有@modelAttribute註釋。 – xian

回答

0

您確定這部分代碼:return「list」; ???

似乎你是returnig的字符串,而不是對象。嘗試它和帖子,這兩種情況下,我沒有權限進行評論= \

+0

是的,我正在返回一個jsp名稱,這將作爲list.jsp解析成一個視圖。我正在使用spring框架。 – xian