
@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