@ResponseBody
@ResponseBody的作用是将java对象转为json格式的数据。
后台给前台传一个对象的话,没有@ResponseBody,接受的则是一个Object对象。
使用@ResponseBody,前台接收到的就是json格式的数据。
说得再具体点:
@ResponseBody将方法的返回值,以特定的格式写入到response的body区域,再将数据返回给客户端。
当方法上面没有写ResponseBody,底层会将方法的返回值封装为ModelAndView对象。
如果返回值是字符串,那么直接将字符串写到客户端;如果是一个对象,会将对象转化为json格式的数据,然后写到客户端。
如果去掉@ResponseBody注解,则会报404错误。因为没有@ResponseBody注解,则会将返回值封装给ModelAndView,但是并没有对应的视图,所以报错。
ModelAndView
使用ModelAndView类用来存储处理完后的结果数据,以及显示该数据的视图。
ModelAndView中的Model代表模型,View代表视图。
业务处理器调用模型层处理完用户请求后,把结果数据存储在该类的model属性中,把要返回的视图信息存储在该类的view属性中,然后让该ModelAndView返回该Spring MVC框架。框架通过调用配置文件中定义的视图解析器,对该对象进行解析,最后把结果数据显示在指定的页面上。
具体作用:返回指定页面。