인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

lch9502님의 프로필 이미지
lch9502

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

경로?

해결된 질문

작성

·

1K

6

안녕하세요

 

1. 요청에 매핑할 때 @GetMapping(/text-basic) 으로 하든 @GetMapping(text-basic) 으로 하든 전혀 상관이 없는 것인가요?

2. 뷰를 리턴할 때 return /basic/text-basic으로 하든 return basic/text-basic으로 하든 상관이 없나요??

실수로 /를 빼고 실행을 했는데도 제대로 실행이 되길래 맨 앞에 /를 빼거나 넣어봤는데 코드가 문제없이 실행이 되길래 질문드립니다.

 

항상 답변 감사드립니다.

답변 2

13

안녕하세요. lch9502님, 공식 서포터즈 David입니다.

 

1. RequestMapping시 path 맵핑은 내부적으로 무조건 슬래시(/)를 앞에 붙이도록 구현되어 있습니다.

따라서, 붙이셔도 되고 안 붙이셔도 되는데, 최종 path는 슬래시가 앞에 붙는 형태가 됩니다.

2. template경로는 내부적으로 prefix, 작성한 문자열, postfix를 다 더해서 만들어집니다.

예를 들어 뷰 템플릿 반환 문자열로 foo를 작성하셨다면 아래와 같이 path가 만들어집니다.

classpath:/templates/ + foo + .html => classpath:/template/foo.html

슬래시(/)를 붙이면 classpath:/template//foo.html 이렇게 만들어집니다.

실제 파일을 불러오는 시점에는 경로 표준화 메서드를 통해 불필요한 슬래시("\\", "/")는 제거한 뒤 정상적인 path로 파일을 불러옵니다.

따라서, 경로를 표준화하는 작업을 거친다하여도 뷰 템플릿을 찾기 위한 반환값 앞에는 슬래시(/)를 붙이지 않는게 맞습니다.

감사합니다.

lch9502님의 프로필 이미지
lch9502
질문자

와 감사합니다!!!

4

와 우연찮게 보게 되었는데 정말 좋은 질문과 답변 글이네요. 감사합니다.

lch9502님의 프로필 이미지
lch9502

작성한 질문수

질문하기