今天想传一个String类型的数据到前台的时候,发现浏览器的控制台报错,GET 404啥的,然后百度了一下说要加@ResponseBody这个注解才行,以前以为加这个注解主要是返回一个json格式用的,我这次返回的只是一个String类型应该不用,但是我加了这个注解后代码就没有出错了。
贴源码:
@RequestMapping(value="checkSession.action")
public String checkSession(HttpSession session){
System.out.println(session.getAttribute("code"));
return (String) session.getAttribute("code");
}
正确的写法:
@RequestMapping(value="checkSession.action")
@ResponseBody
public String checkSession(HttpSession session){
System.out.println(session.getAttribute("code"));
return (String) session.getAttribute("code");
}
原因:
springmvc中的String返回类型是这样的,返回值默认是返回一个路径(如页面),如果你返回的是一个数据的话,它会以为你是一个路径,所以这个时候你就要加注解@ResponseBody,@ResponseBody符合K-V形式就给你弄成json格式。不是就原样返回字符串,使用@ResponseBody来告诉String,这个返回的值为数据而不是路径