스프링MVC) 사용자 요청 처리할 컨트롤러와 메서드 매핑 가능 => @RequestMapping
@RequestMapping(value="웹 요청 URL",method=RequestMethod.(HTTP 요청 방식), ...)
: 이를 사용할 때 기본 매핑 경로를 설정하지 않은 @RequestMapping만 선언된 요청 처리 메서드 있어야 함
@RequestMapping(value="/exam01",method=RequestMethod.GET)
public class Example01Controller {
: 메서드 수준의 @RequestMapping에서 method 속성의 기본값은 GET방식이므로 생략 가능
: @RequestMapping의 value와 method 속성이 HTTP 요청 방식의 기본값이 GET 방식이면 생략 가능
@Controller
public class BookController {
@RequestMapping("/create")
public ModelAndView create() {
: 스프링 4.3부터 HTTP 요청 방식에 대한 매핑 단순화, 요청 처리 메서드 의미 표현 증대
@GetMapping : 매핑할 HTTP 요청 방식이 GET인 경우(method=RequestMethod.GET)
@PostMapping : 매핑할 HTTP 요청 방식이 POST인 경우
@PutMapping : 매핑할 HTTP 요청 방식이 PUT인 경우
@DeleteMapping : 매핑할 HTTP 요청 방식이 DELETE인 경우
@PatchMapping : 매핑할 HTTP 요청 방식이 PATCH인 경우
@Slf4j
// 프링아 이 클래스를 컨트롤러인 자바빈으로 등록해줘
@Controller
// 클래스 레벨에서 공통적인 요청 매핑이 가능-value 속성 하나만 쓰면 생략 가능
@RequestMapping(value = "/business")
.
.
RequestMapping(value = "/detail", method = RequestMethod.GET)
==> @RequestMapping("/detail")
@RequestMapping(...)
public String 메서드 이름() {
// 모델(객체)에 응답 데이터 저장
return "뷰 이름";
}
Model : 데이터(또는 객체) 정보를 저장하는 데 사용
ModelMap : 데이터(또는 객체) 정보를 저장하는 데 사용
ModelAndView : 모델 정보 및 뷰 정보를 저장하는 데 사용
Model 인터페이스> 처리 결과를 뷰에 보여 주는 데 필요한 데이터 => Model 객체의 addAttribute() 메서드에 담아 전달
Model addAttribute(String attributeName, Object attributeValue)
역할 : 제공된 이름으로 제공된 속성을 등록
매개변수
- attributeName: 모델 속성 이름(null이 될 수 없음)
- attributeValue: 모델 속성 값(null이 될 수 없음)
ModelMap도 전달 방식은 같음
ModelAndView : 모델 + 뷰
-> 처리 결과 데이터를 ModelAndView 객체의 addObject() 메서드에 담아 전달, setViewName() 메서드로 뷰 이름을 설정
ModelAndView addObject(String attributeName, Object attributeValue)
역할 : 지정된 이름(attributeName)으로 제공된 속성(attributeValue)을 등록
매개변수
- attributeName: 모델 속성 이름(null이 될 수 없음)
- attributeValue: 모델 속성 값(null이 될 수 없음)
void setViewName(String viewName)
역할 : ModelAndView를 위한 뷰 이름 설정
매개변수
- viewName: 뷰 이름
: 요청 왔을 때 클래스에서 받고 메서드로 val 받았을 떄
경로 변수(path variables) : 웹 요청 URL에 포함된 파라미터 값을 전달받는 데 사용하는 변수 <= 요청 조건 값= @RequestMapping(단순화 포함) : 매핑 경로 설정 - 중괄호({}) 안에 명시된 것이 경로 변수, 하나 또는 그 이상의 경로 변수 포함 가능
: 경로 상에 데이터가 있는 경우 경로 변수 매핑 => 요청 처리 메서드의 파라미터에 @PathVariable로 경로 변수 값 전달받을 수 있음
ex1)
ex2)
@PathVariable : @RequestMapping에 설정된 경로 변수 값을 요청 처리 메서드의 매개변수로 전달 받음
경로 변수 이름 그대로 사용
@RequestMapping("경로 변수")
public String@RequestMapping(value="/employee/detail2/{eEmpno}",method=RequestMethod.GET) public ModelAndView detail2(@PathVariable("eEmpno") String eEmpno...