Spring @ModelAttribute 不关心 commandName

发布于 2024-12-06 22:08:29 字数 455 浏览 0 评论 0原文

JSP:

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

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

@ModelAttribute("DONTGIVEADAMN") Weather weather

我仍然可以使用天气来执行我的操作,并且效果很好,例如:

weatherService.editWeather(weather);

我的问题是......为什么这有效?

JSP:

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

And this is how I get the model in Spring:

@ModelAttribute("DONTGIVEADAMN") Weather weather

And I can still use the weather to do my operations and it works great, for example:

weatherService.editWeather(weather);

My question is...Why does this work?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

靖瑶 2024-12-13 22:08:29

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

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

Model attribute name doesn't matter when binding data received from a form (because names of form fields correspond to the names of fields of the model object), it matters only when rendering a form.

I particular, when model attribute name in your POST handler method doesn't match the commandName in the form, you will be able to receive the data, but won't be able to redisplay a form with validation errors.

旧时模样 2024-12-13 22:08:29

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

its matching the class type (or interface), not the name of the variable/parameter; and the specified request mapping/method signature must be correct.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文