responseBody注解可以直接返回字符串 && springMVC Controller get请求返回字符串是中文乱码解决

 

    //获取商品描述信息(html片段)字符串返回给前台填充html
    @RequestMapping(value="/item/desc/{itemId}",produces=MediaType.TEXT_HTML_VALUE+";charset=utf-8")
    @ResponseBody
    public String getItemDesc(@PathVariable Long itemId){
        String result = itemService.getItemDescById(itemId);
        return result;
    }

注意:

如果 SpringMVC 的 Controller 中需要向前台返回字符串(比如ajax的get请求) 可以把 方法的返回值设置成 String 同时在  @RequestMapping 注解中加入produces属性设置返回字符串的编码来避免前台乱码,然后在方法前面加上 @ResponseBody注解

解释1:如果不加 ResponseBody注解,同时返回值为 String时 SpringMVC 会认为返回的是一个 jsp 视图。

解释2:ResponseBody注解,当返回值是个对象时,此注解会将对象转换为json串返回给前台;而当返回值是个字符串时,此注解会原样返回字符串到前台

 

posted @ 2018-10-17 17:59  戈博折刀  阅读(2547)  评论(0编辑  收藏  举报