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串返回给前台;而当返回值是个字符串时,此注解会原样返回字符串到前台