웹 개발
static contents
말그대로 정적 콘텐츠다
스프링 부트 내 컨테이너에 해당 html의 컨트롤러가 있는 것이 아니라 html 파일을 resourse\static 파일에 넣어두면 그대로 반환해줌
mvc/템플릿 엔진
모델/뷰/컨트롤러와 템플릿 엔진
우선 컨트롤러를 작성해준다
뷰도 작성해준다
/helloMvc 로 가면
길어서 안보일수도 있지만 ㅠ
컨트롤러에 파라미터에 name이 없다고 말하는 중
@RequestParam이 name을 원하고 있음
그럼
이렇게 name에 지수라는 값을 넣어주면 된다!
이과정을 짧게 요약하면
우리가 ~~/helloMvc?name1=jisu요청
스프링 컨테이너가 helloMvc를 컨트롤러에서 찾아서 hello-template.html을 리턴값으로 반환
그때 ?name1 = Jisu로 받아서 addAttrubute("name",Jisu)이렇게 된 셈
viewResolver가 templates/hello-template.html의 ${name}값을 jisu 변환해서 우리에게 보여줌(정적 콘텐츠와의 차이)
viewResolver가 가 찾아다니는 값의 기본 설정이 resources:templates/리턴값+.html
API
2가지 예시
1. 문자 반환
2. 객체 반환
문자와 객체 예시 코드에서 둘다 @ResponseBody를 찾아볼 수 있다.
앞에서 설명한 정적 컨텐츠와 mvc와 달리 html을 찾는게 아니라 직접 html body에 반환 내용을 넣어줌
@ResponseBody를 사용하면 컨트롤러가 HttpMessageConverter한테 반환 값을 전달해 줌
기본 문자처리는 StringHttpMessageConverter
기본 객체처리는 MappingJackson2HttpMessageConverter (Jackson은 오타가 아니라 Json 라이브러리!)
위의 사진처럼 객체 반환에서는 Json을 반환한 것을 알 수 있음
끝