【问题标题】:Spring @ModelAttribute doesn't care about commandNameSpring @ModelAttribute 不关心 commandName
【发布时间】:2011-11-24 13:32:16
【问题描述】:

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

我的问题是……为什么这样会起作用?

【问题讨论】:

    标签: forms spring jsp spring-mvc modelattribute


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2014-02-25
        • 2012-09-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-13
        • 1970-01-01
        • 2015-11-03
        • 2019-11-26
        相关资源
        最近更新 更多