Spring Boot Controller
Contents
@Controller and @RestController
@Controller
Return View, JSP, HTML, etc…
@RestController
JSON, XML etc… for Web API.
Example of Controller
@Controller public class PageController { // Spring mvc @Controller // @RestController @RequestMapping("/method1") public String method1() { return "/index.html"; } }
index.html
<html> <head> <title>Test</title> </head> <body> <h3>Hello World!</h3> </body> </html>
index.html is under src/main/resources/public
Redirect, Forward
@Controller public class PageController { @RequestMapping("/method1") public String method1() { return "/index.html"; } @RequestMapping("/method2") public ModelAndView methods() { ModelAndView modelview = new ModelAndView(); ServiceBean bean = new ServiceBean(); bean.setId(1); bean.setName("Flex"); modelview.addObject("data", bean); modelview.setViewName("/data.jsp"); return modelview; } // Forward @RequestMapping("/forward1") public String forward1() { return "forward:method1"; } // Redirect @RequestMapping("/redirect1") public String redirect1() { return "redirect:method1"; } @RequestMapping("/redirect2") public String redirect2() { return "redirect:https://www.google.com.sg/"; } }
JSON Response
Jackson handle json response, and return bean json.
@RestController public class ResController { // Return contents @RequestMapping("/json") public ServiceBean resBean() { ServiceBean bean = new ServiceBean(); bean.setId(2); bean.setName("Goo"); return bean; } }
bean
@Data public class ServiceBean { private Integer id; private String name; }