개발합니다
[Spring] @ModelAttribute , Model & ModelAndView 객체 본문
1. @ModelAttribute
@ModelAttribute를 이용하면 커멘드 객체의 이름을 변경할 수 있고,
이렇게 변경된 이름은 뷰에서 커멘드 객체를 참조할 때 사용된다.
- 컨트롤러
public String memJoin(Member member)
- 뷰
ID : ${member.memID}
- 컨트롤러
public String memJoin(@ModelAttribute("mem") Member member)
- 뷰
ID : ${mem.memId}
2. Model & ModelAndView
컨트롤러에서 뷰에 데이터를 전달하기 위해 사용되는 객체로 Model과 ModelAndView가 있다.
Model은 뷰에 데이터만을 전달하기 위한 객체이고, ModelAndView는 데이터와 뷰의 이름을 함께 전달하는 객체이다.
[Model]
@RequestMapping(value = "/memModify", method = RequestMethod.POST)
public String memModify(Model model, Member member) {
Member[] members = service.memberModify(member);
model.addAttribute("memBef", members[0]);
model.addAttribute("memAft", members[1]);
return "memModifyOk";
}
addAttribute()를 통해 값을 저장하고, 값을 전달해 줄 view 이름을 return 한다.
[ModelAndView]
@RequestMapping(value = "/memModify", method = RequestMethod.POST)
public ModelAndView memModify(Member member) {
Member[] members = service.memberModify(member);
ModelAndView mav = new ModelAndView();
mav.addObject("memBef", members[0]);
mav.addObject("memAft", members[1]);
mav.setViewName("memModifyOk");
return mav;
}
ModelAndView 객체를 생성한 후, addObject()로 값을 넣어주고 setViewName()으로 view 이름을 지정해준다.
ModelAndView 객체를 반환해주면서 데이터와 뷰 이름을 함께 전달한다.
'Web > Spring' 카테고리의 다른 글
[Spring] 환경 추상화(Environment Abstraction)란? (0) | 2022.03.30 |
---|---|
[Spring] JdbcTemplate & 커넥션풀 (0) | 2022.03.28 |
[Spring] @RequestMapping , 요청 파라미터 (0) | 2022.03.25 |
[Spring] 어노테이션을 통한 스프링 설정 (Annotation Config) (0) | 2022.03.24 |
[Spring] 의존 객체 자동 주입 (@Autowired, @Resource, @Qualifier, @Inject) (0) | 2022.03.24 |