작성
·
239
0
엄청 기본적인건데...이전 강의노트를 찾아봐도 내용 정리가 안되서 질문합니다.
@Controller
@RequestMapping("/basic")
public class BasicController {
@GetMapping("text-basic")
public String textBasic(Model model) {
model.addAttribute("data", "Hello Spring!");
return "basic/text-basic";
}
@GetMapping("text-unescaped")
public String textUnescape(Model model) {
model.addAttribute("data", "Hello <b>Spring!</b>");
return "basic/text-unescaped";
}
}
여기서 RequestMapping 이 basic 폴더를 매핑해주는거고
GetMapping 은 /basic/ 에 있는 파일?과 매핑해주는게 맞나요??
추가적으로 return 하는게 view 인걸로 아는데 model 값을 추가해서 전달해주기 위해 view 를 리턴하는게 맞는지 질문드립니다.
답변 1
0
안녕하세요. gmldnjs0402님, 공식 서포터즈 코즈위버입니다.
@RequestMapping과 @GetMapping 은 디렉토리의 개념보다는 사용자가 요청한 URL 패턴과 매칭합니다.
@GetMapping("/basic/text-basic") 같은 경우에는 메서드 단위로 URL 패턴을 매칭합니다.
@RequestMapping("/basic") 의 경우 클래스 내에 있는 모든 메서드에 공통으로 적용되는 패턴을 의미합니다. 그래서 @RequestMapping에 "/basic" 을 설정할 경우 사용자의 메서드의 매핑에서는 /basic 을 생략할 수 있습니다.
스프링 프레임워크에서는 뷰로 사용할 파일을 문자열(String) 형태로 반환할 수 있습니다. 이때의 /basic/text-basic 의 경우에는 디렉토리와 파일명을 지정해준 것이지요. 이 파일을 렌더링할 때 Model model에 담아두었던 값을 사용할 수 있습니다.
감사합니다.