SpringBoot对注解@ModelAttribute总结

更新时间:2023-08-03 12:38:42 阅读: 评论:0

站长推广SpringBoot对注解@ModelAttribute总结
问题
  @ModelAttribute注解接受postman传json参数接收不到值.其实对@ModelAttribute 了解也不太深,于是就是研究⼀番!
@RequestMapping("/test")
public String test(@ModelAttribute("ur") Ur ur2) {
System.out.println("ur2"+JSONString(ur2));
return "test";
皮部}
这样⽆法接收到postman传⼊的JSON数据.
其实主要是对@ModelAttribute⽤法不够了解。
疫情的话@ModelAttribute 注解可以⽤在⽅法上和 ⽅法的参数上。
1. 注解在⽅法上
被@ModelAttribute注释的⽅法会在此controller每个⽅法执⾏前被执⾏。因此对于⼀个controller映射多个URL的⽤法来说,要谨慎使⽤。
2. @ModelAttribute注释⼀个⽅法的参数
注解⽅法参数有两种情况
a.从model中获取 例如下⾯:
@ModelAttribute("ur")
public void addUr(@RequestBody Ur ur, Model model) {
System.out.println("ModelAttribute:"+1);
model.addAttribute(ur);
属兔名人}
/**
* test
* @return string
*/
@RequestMapping("/test")
public String test(@ModelAttribute("ur") Ur ur2) {
System.out.println("ur2"+JSONString(ur2));
return "test";
}
其中 addUr 还有⼀种写法
public Ur addUr(@RequestBody Ur ur) {
System.out.println("ModelAttribute:"+1);
return ur;
}
在这个例⼦⾥,@ModelAttribute(“ur”) Ur ur2注释⽅法参数,参数ur的值来源于addUr()⽅法中的model属性。
b.从Form表单或URL参数中获取(实际上,不做此注释也能拿到ur对象)
曼联vs阿森纳@RequestMapping("/test")
public String test(@ModelAttribute("ur") Ur ur2) {
System.out.println("ur2"+JSONString(ur2));
return "test";
中国大学生就业网}
因为上⾯的问题是要接收 JSON格式数据,所以b没办法满⾜情况。我开始的想的解决办法是加@RequestBody 像下⾯:
@RequestMapping("/test")
public String test(@RequestBody @ModelAttribute("ur") Ur ur2) {
System.out.println("ur2"+JSONString(ur2));
return "test";
}
然后发现根本⾏不通,所以只能采⽤ a.从model中获取 !
所以有了下⾯的解决⽅案:煎饺
public Ur addUr(@RequestBody Ur ur) {
System.out.println("ModelAttribute:"+1);
return ur;
}
@RequestMapping("/test")
public String test(@RequestBody @ModelAttribute("ur") Ur ur2) {
System.out.println("ur2"+JSONString(ur2));
return "test";
大张声势
}

本文发布于:2023-08-03 12:38:42,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1106560.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:参数   注解   接收   注释   情况   拿到
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图