1.创建一个springboot的项目,会有一个main函数被@springBootApplication注解
2.在controller上注释**@RestController**,表示这是一个controller控制器
@Controller和@RestController的区别
1.@RestController注解相当于@ResponseBody + @Controller合在一起的作用
2.如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,配置的视图解析器InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。
例如:本来应该到success.jsp页面的,则其显示success.
@RequestMapping(value = "/test")
public String test(HttpServletRequest request, HttpServletResponse response){
return "success";
}
3.如果使用@RestController注解Controller,需要返回到指定页面,则需要配置视图解析器InternalResourceViewResolver,可以利用ModelAndView返回试图。
@RequestMapping(value = "/test")
public String test(HttpServletRequest request, HttpServletResponse response){
return newModelAndView("success");
}
4.如果使用@Controller注解Controller,如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。
@ResponseBody
@RequestMapping(value = "/test")
public String test(HttpServletRequest request, HttpServletResponse response){
return "success";
}
总结:@RestController返回的是String,json等字符串如果是返回一个jsp页面需要使用new ModelAndView(""),@Controller无法返回字符串,
对于@RequestMapping()
1.当控制器在类级别上添加@RequestMapping注解时,这个注解会应用到控制器的所有处理器方法上。
2.处理器方法上的@RequestMapping注解会对类级别上的@RequestMapping的声明进行补充。