@Controller
public class HelloController {
@GetMapping("hello")
public String hello(Model model) {
model.addAttribute("data", "hello!!");
return "hello";
}
}
- Controller 에서 문자열을 리턴하면,
viewResolver
가 화면을 찾아 리턴
- SpringBoot 템플릿엔진 기본 viewName 매핑
resources:templates/
+ {ViewName} + .html
spring-boot-devtools
라이브러리 추가시 서버 재시작없이 html 파일 컴파일만으로 view 파일 변경 가능
정적 컨텐츠
- 별다른 Controller 및 동적 데이터 없이 html 그대로 보여주는 경우
resources
에 있는 html 그대로 표시
@ResponseBody
@ResponseBody
annotation 추가하여 응답 body 직접 반환
- 객체를 리턴시 기본적으로 JSON 형태로 응답
viewResolver
대신 HttpMessageConverter
가 동작하여, 문자열일 경우 StringHttpMessageConverter
, 객체일 경우 MappingJackson2HttpMessageConverter
를 통해 응답 body 를 생성하여 응답
/** JSON 형태로 응답
* @param name
* @return
*/
@GetMapping("hello-api")
@ResponseBody
public Hello helloAPI(@RequestParam("name") String name) {
Hello hello = new Hello();
hello.setName(name);
return hello;
}
static class Hello {
@Getter
@Setter
private String name;
}
reference