Spring @ModelAttribute不关心commandName

时间:2011-09-25 08:49:59

标签: forms spring jsp spring-mvc modelattribute

JSP:

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

这就是我在Spring中获得模型的方式:

@ModelAttribute("DONTGIVEADAMN") Weather weather

我仍然可以使用weather进行操作,效果很好,例如:

weatherService.editWeather(weather);

我的问题是......为什么这样做?

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:1)

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