메소드의 매개변수로 사용하여 모델 객체로 데이터를 받을 수 있다.
모델 속성은 HTTP 서블릿 리퀘스트 파라미터의 필드 이름과 매칭해서 만들어지기 때문에 데이터를 일일이 바인딩하지 않아도 된다는 장점이 있다.
@Data
public class Member {
private String id;
private String name;
}
@GetMapping("/model")
public void model(@ModelAttribute Member member) {
log.info("member : {}", member);
}
URL을 http://localhost:8080/model/model?id=1&name=hong 이렇게 요청하면 id와 name 값을 Member 클래스의 필드 속성과 자동으로 매칭해 준다.
member : Member(id=1, name=hong)
@Slf4j
@SessionAttributes({"member"})
@RequestMapping("/model")
@RestController
public class ModelAttributeController {
@Autowired HttpSession session;
@ModelAttribute
public void defaultModel(Model model) {
log.info("defaultModel 호출");
Member member = new Member();
member.setId("defaultId");
member.setName("defaultName");
model.addAttribute("member", member);
}
@GetMapping("/model")
public void model(@ModelAttribute Member member) {
log.info("member : {}", member);
}
@GetMapping("/session")
public void sessionRead() {
log.info("sessionRead : {}", session.getAttribute("member"));
}
}
Spring MVC @RequestBody (0) | 2022.05.26 |
---|---|
Spring MVC @CookieValue (0) | 2022.05.24 |
Spring MVC @RequestParam (0) | 2022.05.23 |
댓글 영역