개발 등/SPRING

@PathVariable, @RequestParam 으로 Entity 객체 자동 매핑

darkhorizon 2023. 6. 1. 14:00
728x90
반응형

SpringMVC으로 화면에서 파라미터를 전달받을 때 일반적으로 @RequestParam 혹은 @PathVariable 을 이용해서 다음과 같이 처리한다.

@RequestMapping("/{id}")
String showUserForm(@PathVariable("id") String id, Model model) {
	User user = userRepository.findById(id);
    model.addAttribute("user", user);
    return "userForm";
}

 

Spring에서는 DomainClassConverter 를 이용해서 코드를 더 단순화하게 해준다.

@RequestParam이나 @PathVariable로 받은 인자와 뒤에 선언한 Entity 타입을 추론해서 해당  Repository의 findById 로 조회된 객체를 리턴해준다.

@RequestMapping("/{id}")
String showUserForm(@PathVariable("id") User user, Model model) {
    model.addAttribute("user", user);
    return "userForm";
}

이렇게 코드를 작성하면 DispatcherServlet으로 매핑되기 전에 조회된 엔티티 객체를 바로 사용할 수 있다.

 

https://docs.spring.io/spring-data/data-commons/docs/2.3.0.RELEASE/reference/html/#core.web.basic

728x90