어노테이션에 관련된 질문
- 작성자 :
- 이*
- 작성일 :
- 2009-09-25 09:00:16
- 조회수 :
- 3,842
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
아래 소스를 비교해 주셨으면 합니다.
@RequestMapping("/sample/addSampleView.do")
public String addSampleView(
@ModelAttribute("searchVO") SampleDefaultVO searchVO,
Model model)
throws Exception {
model.addAttribute("sampleVO", new SampleVO());
return "sample/egovSampleRegister";
}
---->
@RequestMapping("/sample/addSampleView.do")
public String addSampleView(
SampleDefaultVO searchVO,
Model model)
throws Exception {
model.addAttribute("sampleVO", new SampleVO());
return "sample/egovSampleRegister";
}
이렇게 하는 것의 차이점을 알고 싶습니다. 의미상으로는 같은 건가요?
@RequestMapping("/sample/addSampleView.do")
public String addSampleView(
@ModelAttribute("searchVO") SampleDefaultVO searchVO,
Model model)
throws Exception {
model.addAttribute("sampleVO", new SampleVO());
return "sample/egovSampleRegister";
}
---->
@RequestMapping("/sample/addSampleView.do")
public String addSampleView(
SampleDefaultVO searchVO,
Model model)
throws Exception {
model.addAttribute("sampleVO", new SampleVO());
return "sample/egovSampleRegister";
}
이렇게 하는 것의 차이점을 알고 싶습니다. 의미상으로는 같은 건가요?
A
안녕하세요.. 이솔님
@ModelAttribute를 사용하는 이유는 Model 속성(VO)과 메소드 파라미터의 바인딩을 위해서입니다.
즉, serchVO에 웹 request parameter값을 넣으려면 @ModelAttribute를 지정하셔야 합니다.
다만, 실제 @ModelAttribute 없이 테스트를 하셔도 parameter값들은 들어가도록 되어 있습니다. (Spec.상의 설명과 DispatcherServlet 구현상의 차이인 것 같습니다.)
다시 말씀드리면 위 경우만으로 보면 차이점이 없습니다.
그러나 다음 JSP인 egovSampleRegister.jsp에서 serchVO 값을 참조하려면
반드시 @ModelAttribute를 지정하셔야 합니다.
@ModelAttribute에 지정된 name으로 JSP 페이지에서 참조할 할 수 있도록 Model정보로 담겨지기 때문입니다.
(별도로 두번째 방식에서 model.attribute("searchVO", searchVO); 코드를 추가하셔도 같은 기능을 수행합니다.)
그럼.. 남은 하루도 즐거운 하루 되십시오.
감사합니다.
@ModelAttribute를 사용하는 이유는 Model 속성(VO)과 메소드 파라미터의 바인딩을 위해서입니다.
즉, serchVO에 웹 request parameter값을 넣으려면 @ModelAttribute를 지정하셔야 합니다.
다만, 실제 @ModelAttribute 없이 테스트를 하셔도 parameter값들은 들어가도록 되어 있습니다. (Spec.상의 설명과 DispatcherServlet 구현상의 차이인 것 같습니다.)
다시 말씀드리면 위 경우만으로 보면 차이점이 없습니다.
그러나 다음 JSP인 egovSampleRegister.jsp에서 serchVO 값을 참조하려면
반드시 @ModelAttribute를 지정하셔야 합니다.
@ModelAttribute에 지정된 name으로 JSP 페이지에서 참조할 할 수 있도록 Model정보로 담겨지기 때문입니다.
(별도로 두번째 방식에서 model.attribute("searchVO", searchVO); 코드를 추가하셔도 같은 기능을 수행합니다.)
그럼.. 남은 하루도 즐거운 하루 되십시오.
감사합니다.