Controller 层中,到底是 返回界面 还是JSON?(转)
前提:Controller 层上面的注解是@Controller;如果是@RestController 情况就不同了
讨论:返回json 数据 还是view视图?
结论:
- 不使用@ResponseBody 注解在方法上,返回的是String对象,那么展示的内容要到指定界面上。
- 使用@ResponseBody 注解在方法上,返回的是JSON对象,那么展示的内容便是json字符串。
- 使用@ResponseBody 注解在方法上,返回的对象是ModelAndView (显示界面),那么展示的内容要到指定界面上。
代码示例如下:
// 返回界面 @GetMapping("/index") public String index1() { return "index"; } // 返回json对象 @ResponseBody @GetMapping("/json") public String json() { return "json"; } // 返回界面 或json // 如果用到@ResponseBody 还想返回视图,那必须要用 ModelAndView 对象 @ResponseBody @GetMapping("/json") public Object view(boolean is) { if(is){ ModelAndView mv=new ModelAndView(); mv.setViewName("/index"); return mv; } return "json"; }