码迷,mamicode.com
首页 > 编程语言 > 详细

SpringMVC学习八 @ResponseBody注解

时间:2018-10-14 22:03:11      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:name   utf-8   中文乱码   转换   json   内容   produce   异步   形式   

(一)在方法上只有@RequestMapping 时,无论方法返回值是什么认为需要跳转,代码实例如下

    @RequestMapping("demo10")
    public People fun10() {
        People pl=new People();
        pl.setName("张三");
        pl.setAge(12);
        return pl;
    }

 

如果不希望跳转,可以把控制器的返回值设置为void ,或者加上注解@ResponseBody

代码如下

  @RequestMapping("demo10")
    @ResponseBody
    public People fun10() {
        People pl=new People();
        pl.setName("张三");
        pl.setAge(12);
        return pl;
    }

(二)@ResponseBody注解的作用

@Responsebody 注解表示该方法的返回的结果直接写入 HTTP 响应正文(ResponseBody)中,一般在异步获取数据时使用,通常是在使用 @RequestMapping 后,返回值通常解析为跳转路径,加上 @Responsebody 后返回结果不会被解析为跳转路径,而是直接写入HTTP 响应正文中。

(1)如果返回值满足 key-value 形式(对象或 map),把响应头的Content-Type属性设置 application/json;charset=utf-8,并把返回的内容转换成json字符串格式,把转换后的内容输出流的形式响应给客户端

(2)如果返回值不满足 key-value,例如返回值为 String,把相应头的Content-Type设置为 text/html,并把返回值的内容以流的形式直接输出,但是如果返回内容中有中文,会出现中文乱码问题,解决办法就是在@RequestMapping注解中加入produces="text/html;charset=utf-8",produces属性就是表示响应头中 Content-Type 取值.

@RequestMapping(value="demo12",produces="text/html;charset=utf-8")
@ResponseBody
public String demo12() throws IOException{
    People p = new People();
    p.setAge(12);
    p.setName("张三");
    return "中文";
}

 

 



SpringMVC学习八 @ResponseBody注解

标签:name   utf-8   中文乱码   转换   json   内容   produce   异步   形式   

原文地址:https://www.cnblogs.com/cplinux/p/9787991.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!