-
카테고리
-
세부 분야
백엔드
-
해결 여부
해결됨
경로?
22.02.24 21:40 작성 조회수 771
6
안녕하세요
1. 요청에 매핑할 때 @GetMapping(/text-basic) 으로 하든 @GetMapping(text-basic) 으로 하든 전혀 상관이 없는 것인가요?
2. 뷰를 리턴할 때 return /basic/text-basic으로 하든 return basic/text-basic으로 하든 상관이 없나요??
실수로 /를 빼고 실행을 했는데도 제대로 실행이 되길래 맨 앞에 /를 빼거나 넣어봤는데 코드가 문제없이 실행이 되길래 질문드립니다.
항상 답변 감사드립니다.
답변을 작성해보세요.
10
David
2022.02.25
안녕하세요. 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로 파일을 불러옵니다.
따라서, 경로를 표준화하는 작업을 거친다하여도 뷰 템플릿을 찾기 위한 반환값 앞에는 슬래시(/)를 붙이지 않는게 맞습니다.
감사합니다.
4
답변 2