相关疑难解决方法(0)

Spring MVC:请解释@RequestParam和@ModelAttribute之间的区别

我是Spring MVC的新手.请帮我解开文档.

文档

Spring MVC文档声明(强调我的):

  • @ModelAttribute在method参数上指示应从模型中检索参数.如果模型中不存在,则应首先实例化参数,然后将其添加到模型中.一旦出现在模型中,参数的字段应该从具有匹配名称的所有请求参数中填充.WebDataBinder类将请求参数名称(包括查询字符串参数和表单字段)与名称模型属性字段进行匹配.

  • @RequestParam 将请求参数绑定到控制器中的方法参数.

免责声明/澄清器

我知道@ModelAttribute并且@RequestParam不是相同的东西,不是相互排斥的,不执行相同的角色,并且可以同时使用,因为在这个问题中 - 实际上,@RequestParam可以用于填充字段@ModelAttribute.我的问题更多地是针对其内部运作之间的差异.

题:

@ModelAttribute(用于方法参数,而不是方法)和@RequestParam?之间的区别是什么?特别:

  • 来源:待办事项@RequestParam@ModelAttribute具有信息/人口,在URL即请求参数相同的源,其可以被提供作为被窗体/模型的元素POST编?
  • 用法:检索到的变量@RequestParam被丢弃是否正确(除非传递给模型),而检索@ModelAttribute到的变量会自动输入要返回的模型中?

或者在非常基本的编码示例中,这两个示例之间真正的工作区别是什么?

例1 @RequestParam::

// foo and bar are thrown away, and are just used (e.g.) to control flow?
@RequestMapping(method = RequestMethod.POST)
public String testFooBar(@RequestParam("foo") String foo,
@RequestParam("bar") String bar, ModelMap model) { …
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc spring-annotations

46
推荐指数
3
解决办法
4万
查看次数

标签 统计

java ×1

spring ×1

spring-annotations ×1

spring-mvc ×1