gpt4 book ai didi

java - 默认 "SpringWeb"模型属性用法和文档

转载 作者:行者123 更新时间:2023-12-02 11:25:15 26 4
gpt4 key购买 nike

我在许多教程和其他地方注意到,在提交表单时,使用名为“SpringWeb”的默认模型属性将所有 jsp 元素映射到 java POJO。

例如,在以下教程中,@ModelAttribute("SpringWeb") 映射到 Student 对象。

@RequestMapping(value = "/addStudent", method = RequestMethod.POST)
public String addStudent(@ModelAttribute("SpringWeb")Student student,

ModelMap model) {
model.addAttribute("name", student.getName());
model.addAttribute("age", student.getAge());
model.addAttribute("id", student.getId());

return "result";
}

@RequestMapping(value = "/student", method = RequestMethod.GET)
public ModelAndView student() {
return new ModelAndView("student", "command", new Student());
}

http://www.tutorialspoint.com/spring/spring_mvc_form_handling_example.htm

即使 GET 方法没有像示例中那样返回“new ModelAndView("student", "command", new Student())”对象,“SpringWeb”模型属性当表单回发时仍然存在。例如 - 在 GET 请求中,如果我编写 model.addAttribute ("xyz", "123) 并仅返回 View 名称,并且我不使用 jsp 标记中的“path”映射表单字段.当表单回发时,表单字段仍然会通过“SpringWeb”映射到java对象。

github上也没有“SpringWeb”的搜索结果: https://github.com/spring-projects/spring-framework/search?utf8=%E2%9C%93&q=SpringWeb&type=

我确实了解可以使用自定义模型属性并将其映射到表单元素,而不是使用 @ModelAttribute("SpringWeb")。但是,我在 stackoverflow 中找不到任何相关问题可以详细解释什么是“SpringWeb”以及使用它是好是坏?

我在“POST”请求上调试了模型对象,发现“SpringWeb”在“BindingAwareModelMap”模型对象中自 Action 为“键”和“值”对出现。但是,我在下面的链接中找不到与“SpringWeb”相关的任何文档。

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/validation/support/BindingAwareModelMap.html

什么是“SpringWeb”?我目前的理解是,它是一个“包罗万象”的模型属性,在提交表单时由 spring 自动映射。如果是,那么它是如何被发现并决定在没有任何文档的情况下使用它的? (至少我找不到)

最佳答案

form-tags默认的modelattribute是command。在引用的示例中,“魔法”发生在那里:

@RequestMapping(value = "/student", method = RequestMethod.GET)
public ModelAndView student() {
// the second and third parameter:
// a new Student is binded to the form-tags default modelattribute
return new ModelAndView("student", "command", new Student());
}

ModelAndView 构造函数的第二个和第三个参数负责将新的 Student-Object 绑定(bind)到 form-tags 默认 modelattribute“command”

在后接收方法中,模型属性注释“SpringWeb”的名称-值

@ModelAttribute("SpringWeb") Student student

也可以删除

@ModelAttribute Student student

关于java - 默认 "SpringWeb"模型属性用法和文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49683243/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com