1) 如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,或者html,配置的视图解析器 InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。
2) 如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。
如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。
例如:
1.使用@Controller 注解,在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面
若返回json等内容到页面,则需要加@ResponseBody注解
@RequestMapping("hello")
public String hello(Model model, HttpServletRequest request) {
List<User> list = userService.getAllUser();
model.addAttribute("list",list);
return "hello";
}
ps:RestController 需跳转freeMarker 页面时就只会反馈 hello字符串到页面,改为Controller
Spring MVC 控制器区别
本文探讨了Spring MVC框架中@Controller与@RestController的区别。@Controller用于返回视图名称,结合视图解析器实现页面跳转;而@RestController则默认返回JSON等数据格式。文中还介绍了如何通过@ResponseBody注解来调整控制器的行为。
3147

被折叠的 条评论
为什么被折叠?



