SpringBoot レスポンス
SpringBoot レスポンスについて
・テンプレート名返却
※@RestControllerではbodyとして返却される
@RequestMapping(value="/", method=RequestMethod.GET) public String index() { return "index"; }
・body返却
@RequestMapping(value="/", method=RequestMethod.GET) @ResponseBody public String index() { return "index"; }
・ModelAndView返却
@RequestMapping(value="/", method=RequestMethod.GET) public ModelAndView index(ModelAndView mv) { mv.setStatus(HttpStatus.OK); mv.setViewName("index"); return mv; }
・フォワード
@RequestMapping(value="/", method=RequestMethod.GET) public String index() { return "forward:method"; } @RequestMapping(value="/method", method=RequestMethod.GET) @ResponseBody public String method() { return "method"; }
・リダイレクト
@RequestMapping(value="/", method=RequestMethod.GET) public String index() { return "redirect:method"; // return "redirect:http://localhost:8080/method"; } @RequestMapping(value="/method", method=RequestMethod.GET) @ResponseBody public String method() { return "method"; }
・リソース返却
@Autowired ResourceLoader resourceLoader; @RequestMapping(value="/", method=RequestMethod.GET, produces=MediaType.TEXT_HTML_VALUE) public Resource index() { return resourceLoader.getResource("classpath:templates/index.html"); }
・xml返却(@ResponseBody不要)
@RequestMapping(value="/", method=RequestMethod.GET, produces=MediaType.APPLICATION_XML_VALUE) public String index() { return "<xml><title>index</title></xml>"; }
・HTTPヘッダやステータスとあわせて返却
@RequestMapping(value="/", method=RequestMethod.GET) public ResponseEntity<String> index() { String body = "index"; HttpHeaders headers = new HttpHeaders(); headers.add(HttpHeaders.DATE, LocalDateTime.now().toString()); return new ResponseEntity<String>(body, headers, HttpStatus.OK); }