본문 바로가기

강의 내용 정리/스프링 입문

MVC와 템플릿 엔진

1. @RequestParam

2. thymeleaf의 기능

3. @ResponseBody

 

 

 

 

 

hello! empty 써 놓는 이유는 서버 없이 그냥 html파일 열었을 때 hello! empty 가 보이게됨

but 서버와 연결 뒤 실행하면 앞의  hello와 이름으로 치환된다. ( thymeleaf 기능 )

 

 

 

 

 

model은 view로 값을 넘겨준다.

 

이 부분을 추가 하였는데,

( @RequestParam 은 요청의 쿼리 파라미터에서 값을 가져온다. )

@RequestParam은 value와 required를 인수로 같는다. required는 default가 true이다. false로 바꾸면 String name에 인수 안넣어도 오류발생시키지 않는다. But 우리는 value만 넣었으므로 true인 상태이다.

그러므로

localhost:8080/hello-mvc    로 이동 시 에러 출력

 

 

 

이렇게 String name에 인수를 직접 넣어주면 에러발생 안한다. 앞의 hello는

보다시피 hello-template.html의 내용이다.

( ${ } 안의 내용은 model에서 값을 꺼내는 것 )

 

 @ResponseBody 없으면 viewResolver에게 던짐 " 나에게 맞는 템플릿(뷰) 찾아줘!!!!!" 그래서 이름 같은 템플릿으로 넘어감

 

 @ResponseBody 없으면 viewResolver에게 던짐 " 나에게 맞는 템플릿(뷰) 찾아줘!!!!!" 그래서 이름 같은 템플릿으로 넘어감

 

 

정적 컨텐츠와 다르게 HTML로 변환하여 넘겨준다. ( 톰켓의 역할 )

: 아래 사진 처럼 ddd로 변환하여 넘겨준다

 

 

 

 

 

 

# 참고

 

위처럼 @ResponseBody를 써 놓으면 어떻게 될까?

@RequestParam에서 String name에  아무 인자를 주어 에러만 발생시키지 않는다면 반환값인 hello-template 을 파일로 인식하지않고  데이터로 리턴하여 hello-template 을 출력한다.

= HTTP의 Body부에 직접 데이터를 넣어주겠다.

 

위 화면에서 소스보기를 하면 html없이 그냥 저 문자열이 나온다.

 

 

 

 

 

 

 

 

https://dont-be-evil.tistory.com/49?category=1066897 

 

14강(마지막) - 응답(Response)하는 방법

1. 요청 주소에 따른 적절한 컨트롤로 요청 (Handler Mapping) GET요청 => http://localhost:8080/post/1 해당 주소 요청이 오면 적절한 컨트롤러의 함수를 찾아서 실행한다. 2. 응답 html파일을 응답할..

dont-be-evil.tistory.com

위 게시글의 @ResponseBody와 같은 내용이다.

 

 

 

 

 

출처 : 인프런 김영한님의 강의를 수강 후 정리한 내용입니다.

 

 

 

 

꾸준히 다시보자.

 

1. 220712

2. 220731

 

 

 

 

 

 

'강의 내용 정리 > 스프링 입문' 카테고리의 다른 글

회원 리포지토리 테스트 케이스 작성  (0) 2022.07.04
회원 도메인과 리포지토리 만들기  (0) 2022.07.04
API  (0) 2022.07.04
정적 컨텐츠  (0) 2022.07.04
회원 관리 예제 - 백엔드 개발  (0) 2022.06.26
Recent Posts
Popular Posts
Recent Comments