작성
·
27
0
프로젝트를 따로 만들면서 강의 들었던 내용을 참고하면서 혼자 해보는중입니다.
근데 컨트롤러 경로 설정할때 /add 는 어디에도 없는데 왜 경로를 그렇게 했는지 궁금해서 작성합니다.
컨트롤러 최상위는
@Controller @RequestMapping("/basic/items") @RequiredArgsConstructor
내부 컨트롤러는
@GetMapping("/add") public String addForm() { return "basic/addForm"; }
html 경로는
/resources/templates/basic/addForm.html `
인데
add 의 의미가 요청/응답 가상의 이름인지 아니면 제가 못찾은 경로의 이름인지 궁금합니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. rrr6964님.
스프링 MVC에서는 컨트롤러의 경로 설정은 애플리케이션의 URL 구조를 정의하는 중요한 부분입니다. 질문하신 내용에서 @GetMapping("/add")
부분에 대해 설명드리겠습니다.
컨트롤러 매핑의 의미:
@RequestMapping("/basic/items")
: 이 어노테이션은 클래스 레벨에서 사용되어 해당 컨트롤러가 /basic/items
경로로 들어오는 모든 요청들을 처리함을 나타냅니다.@GetMapping("/add")
: 이는 해당 컨트롤러로 들어오는 /basic/items/add
요청을 처리하는 메서드임을 나타냅니다. 즉, /basic/items
라는 기본 경로에 /add
가 추가되어 최종적으로 /basic/items/add
경로가 됩니다.“add”는 요청/응답의 가상 이름:
add
는 실제 파일 경로나 디렉토리와 관계없이, 요청을 구분하기 위해 URL에서 사용하는 논리적인 이름입니다. 이는 클라이언트가 특정 동작(예: 아이템 추가 폼을 보기 위해 페이지를 요청)을 수행하기 위해 사용합니다.HTML 경로와의 관련성:
return "basic/addForm";
은 논리적인 뷰 이름을 반환하며, 스프링 부트 템플릿 리졸버(Resolver)에 의해 실제 HTML 파일 경로로 매핑됩니다. 일반적으로 src/main/resources/templates
디렉토리 내의 basic/addForm.html
파일을 가리킵니다.따라서, 컨트롤러의 @GetMapping("/add")
은 특정 경로와의 매핑 목적이며, 이를 통해 사용자가 해당 URL로 접근했을 때 어떤 동작(예: 특정 뷰를 렌더링)을 수행할지를 지정하게 됩니다.
이해에 도움이 될만한 유사한 질문은 아래 URL에서 더 찾아보실 수 있습니다:
- GetMapping에대해서 질문
- RequestMapping에서 / 유무
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.