1. @RequestParam
2. thymeleaf의 기능
3. @ResponseBody


hello! empty 써 놓는 이유는 서버 없이 그냥 html파일 열었을 때 hello! empty 가 보이게됨
but 서버와 연결 뒤 실행하면 앞의 hello와 이름으로 치환된다. ( thymeleaf 기능 )


이 부분을 추가 하였는데,
( @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부에 직접 데이터를 넣어주겠다.

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
'Java, Spring > 스프링 입문' 카테고리의 다른 글
회원 리포지토리 테스트 케이스 작성 (0) | 2022.07.04 |
---|---|
회원 도메인과 리포지토리 만들기 (0) | 2022.07.04 |
API (0) | 2022.07.04 |
정적 컨텐츠 (0) | 2022.07.04 |
회원 관리 예제 - 백엔드 개발 (0) | 2022.06.26 |