在SSM框架中,controller的action中,返回的是视图,即jsp页面或是ModelAndView,若是通过axios给vue传值的话,需要转换为字符串或是user实体类对象。
使用@ResponseBody进行返回值转换。
1.String
@RequestMapping("/login") @ResponseBody public String login( )throws Exception { String username ="csq"; String password ="123"; user r = this.userservice.findLoginUser(username, password); if (r.getIdent() == 0) { return "index"; } else{ return "login"; } }
若是不加@ResponseBody,
此时将报404,找不到对应的jsp页面,因为返回的是视图view。
添加之后,
返回“index”字符串。
2.JSON对象(user实体类,list列表)
@RequestMapping("/login") @ResponseBody public user login( )throws Exception { String username ="csq"; String password ="123"; user r = this.userservice.findLoginUser(username, password); if (r.getIdent() == 0) { return r; } else{ return r; } }
若是不加@ResponseBody,
此时报404,返回的是视图view。
添加之后,
返回json对象,里面是查询到的一条数据。
结论:若是通过jsp页面与后台数据交换的话,就不需要添加@RequestBody,直接返回视图就可以了,因为Spring mvc中默认返回的是视图;若是需要传参数给vue,则需要添加@RequestBody进行返回值的转换。
当controller中返回值为json对象时,需要进行一些配置:
(1)springmvc.xml文件中添加:此时运行会报500,,提示缺少相应的包,
(2)
将jackson对应的三个jar包导入到项目中,此时才可以正确返回json对象,将不再报500.
需要放到WEB-INF下的lib下,引入外部目录的jar,工程编译可以通过,部署的时候不会拷贝到工程里面去,还是找不到(重点)
现在就可以传参数给vue,实现前后端数值的传递了。