2011-09-25 34 views
0

JSP:春天@ModelAttribute不關心命令名

<form:form commandName="editWeather" method="post" action="../edit"> 
    <!-- Input fields --> 
    <input type="submit" value="Submit"> 
</form:form> 

這是我怎麼弄春模型:

@ModelAttribute("DONTGIVEADAMN") Weather weather 

我仍然可以使用weather做我的操作它很好用,例如:

weatherService.editWeather(weather); 

我的問題是......爲什麼這個工作?

回答

5

當綁定從表單接收的數據時(因爲表單字段的名稱與模型對象的字段名稱相對應),模型屬性名稱無關緊要,它僅在渲染表單時才重要。

特別是,當您的POST處理程序方法中的模型屬性名稱與表格中的commandName不匹配時,您將能夠接收數據,但無法重新顯示帶有驗證錯誤的表單。

1

它匹配類類型(或接口),而不是變量/參數的名稱;並且指定的請求映射/方法簽名必須是正確的。