봄 3 참조 가르쳐 : 당신이 방법 매개 변수에 배치 할 때메소드 인수 수준에서 @ModelAttribute 주석의 의미는 무엇입니까?
이
@ModelAttribute
는 특정 주석 메소드 매개 변수
에 모델 속성을 매핑 나는이 이해가 안 돼요 마법 철자, 왜냐하면 그 모델 객체의 별칭 (반환 값으로 ModelMap
을 사용하는 경우 키 값)이 요청 처리기 메소드 실행 후 View로 전달 되었기 때문입니다. 따라서 요청 핸들러 메소드가 실행될 때 모델 오브젝트의 이름은 메소드 매개 변수에 맵핑 될 수 없습니다.
이 모순을 해결하기 위해 나는 stackoverflow에 가서 this 상세한 예제를 찾았습니다. 예 저자는 말했다 :
은 "personAttribute"모델이 그것은 보인다 JSP에서 컨트롤러에 전달 된 // 그는 봄 참조에 매료되어
...
매력을 없애기 위해 필자는 자신의 샘플 앱을 내 환경에 배치하고
MainController.saveEdit()
메서드에서 @ModelAttribute 주석을 잔인하게 자른다. 결과적으로 응용 프로그램은 변경없이 작동합니다! 그래서 결론 :@ModelAttribute
주석은 웹 폼의 필드 값을 인수의 필드로 전달하는 데 필요하지 않습니다. 그럼 나는 질문에 붙어 :@ModelAttribute
주석의 평균은 무엇입니까? 보기에서 모델 개체의 별칭을 설정하는 것이 유일한 의미 인 경우 개체를 명시 적으로 추가하는 것보다이 방법이 더 좋은 이유는ModelMap
입니까? 인수가 주석되어 있지 않은 경우 그 유형 (즉, 그것은HttpServletRequest
,ModelMap
등이 아니다), 그것은@ModelAttribute
-annotated 인수처럼 처리됩니다 특별한 의미가 없습니다 -