春天@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
不匹配时,您将能够接收数据,但无法重新显示带有验证错误的表单。
答
它匹配类类型(或接口),而不是变量/参数的名称;并且指定的请求映射/方法签名必须是正确的。