回顾SpringMVC注解
Posted TGB-Earnest
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了回顾SpringMVC注解相关的知识,希望对你有一定的参考价值。
说明
之前一直在做SpringBoot项目,当时用什么注解,自己也都了解过,更多的是在理论上面,然后做项目的时候墨守成规,但是对于里面真正的原理自己似乎并没有体会到从springMVC到springboot演进的快感。
现在自己在做公司自己研发的框架,类似于velocity。里面就没有Springboot注解,全是SpringMVC的。所以体会到了之中一点的奇妙。
在做这个项目请求接口几乎都是只有@RequestMapping(“updateRedPkgCouponIsRead.html”)这个注解,返回值是String类型,值为页面的名称。但是我当时请求的时候报404,我接口写的也对,但就是报404。
经过后来才发现是@ResponseBody这个注解
注解
(1)@ResponseBody
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ResponseBody
可以看出作用在方法上面,而且是空的。
ResponseBody:将该接口方法的返回值转换成json字符串,并对外输出
@ResponseBody
@RequestMapping(value="/getUser",method=RequestMethod.GET)
public User showUsers()
User user = new User();
user.setId(1);
user.setUsername("syc");
return user;
加了之后,这个user可以在浏览器输出jaso的形式,同时也等同于 response.getWriter.write
@RequestMapping("/login")
@ResponseBody
public User login(User user)
return user;
User字段:userName pwd
那么在前台接收到的数据为:'"userName":"xxx","pwd":"xxx"'
效果等同于如下代码:
@RequestMapping("/login")
public void login(User user, HttpServletResponse response)
response.getWriter.write(JSONObject.fromObject(user).toString());
@RequestMapping(value="/getUser",method=RequestMethod.GET)
public String showUsers()
return "success.html"
不加注解默认当做请求转发处理,如果有该注解会把方法转成jasn,再对外输出。
(2) @RequestBody
用来将前端传递过来的json自负惨转成对象类型!
当我们在请求方法中不添加该注解的时候,表示我们要处理一个表单传递参数的请求;当添加
该注解的时候,表示我们要处理一个通过json字符串传递参数的请求。
@RequestParam 与 @RequestBody的区别:
@RequestParam用来接受通过浏览器地址栏或者通过页面表单中直接传递过来的请求参数;
@RequestBody用来接收前端通过ajax/postman模拟的json字符串,将该字符串自动转换成对应的对象类型。
未完待续…
以上是关于回顾SpringMVC注解的主要内容,如果未能解决你的问题,请参考以下文章