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);
}