春天@ModelAttribute不关心命令名

问题描述:

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); 

我的问题是......为什么这个工作?

当绑定从表单接收的数据时(因为表单字段的名称与模型对象的字段名称相对应),模型属性名称无关紧要,它仅在渲染表单时才重要。

特别是,当您的POST处理程序方法中的模型属性名称与表格中的commandName不匹配时,您将能够接收数据,但无法重新显示带有验证错误的表单。

它匹配类类型(或接口),而不是变量/参数的名称;并且指定的请求映射/方法签名必须是正确的。