그동안 배운 스프링을 토대로 DB(MySql)와 연결하여 데이터를 관리하는 나만의 아주 작은 프로젝트를 시작했다.
과거 코드를 되짚어보며 코드를 작성하던 중, @ModelAttribute가 등장했다. 분명 이전에 공부할 때도 사용했었지만 당시에는 그저 편리한 기능이라고 머리속에만 담아두었었다.
하지만 시간이 흐르고 다시 위 어노테이션을 보니 정확한 기능을 모르고 있는 것 아니겠는가.
하여 지금부터라도 궁금했던 것이나 후에 유용하게 사용할 기능들 등을 하나씩 블로그에 적어가려 한다. 이 기록이 나에게도, 또 나와 같은 궁금증을 갖고 인터넷 서칭을 한 다른 사람들에게도 도움이 되었으면 좋겠다.
@GetMapping
public String students(@ModelAttribute("studentSearch") StudentSearchCond searchCond, Model model) {
List<StudentVo> students = studentService.findStudents(searchCond);
model.addAttribute("students", students);
return "students";
}
이와 같이 메소드의 파라미터에 적용하면 @ModellAttribute는 사용자가 요청시 전달하는 값을 오브젝트 형식으로 매핑해준다.
※ 전제조건으로 객체(Entity 혹은 Data)에 Setter가 존재해야 한다.
student 객체의 name, age 인스턴스 변수를 /?name=choi&age=20 과 같이 요청하면 각 값이 student 객체로 바인딩 된다.
깃 주소: https://github.com/Newbiedevelope/my_projectV1.git
'스프링' 카테고리의 다른 글
@target과 @witnin의 차이 (0) | 2023.04.17 |
---|---|
Aspect와 어드바이저의 차이점 (0) | 2023.04.10 |