@ModelAttribute
RequestMapping(value="/owners/{ownerId}/pets/{petId}/edit", method =
RequestMethod.POST)
public String processSubmit(@ModelAttribute Pet pet) { }
http://.../?name=Something&age=100
public String doSomething(@ModelAttribute User user) { }
@RequestBody
@RequestMapping(value = "/user/savecontact", method = RequestMethod.POST
public String saveContact(@RequestBody Contact contact){ }
{ "name": "Something", "age": "100" } in request body
public String doSomething(@RequestBodyUser user) { }
@ModelAttribute将采用查询字符串。所以,所有数据都通过url传递给服务器
@RequestBody,所有数据都将通过完整的JSON主体传递给服务器
两者都处理多部分文件并且两者都有相同的选项吗? https://javabeat.net/spring-multipart-file-upload/ How do i upload/stream large images using Spring 3.2 spring-mvc in a restful way
他们中的任何一个是否比另一个具有更少的能力?像长度限制一样,方法限制。缺点
答案 0 :(得分:2)
正如javadoc所建议的,用法是将它们区分开来,即,如果要将对象绑定回Web视图,请使用@ModelAttribute;如果不需要,请使用@RequestBody
@RequestBody
@ModelAttribute
有关数据绑定和类型转换的更多信息,请参见:https://docs.spring.io/spring/docs/5.1.x/spring-framework-reference/core.html#validation