목차
스프링 @ModelAttribute
스프링MVC의 Controller는 기본적으로 Java Beans 규칙에 맞는 객체는 다시 화면으로 객체를 전달함
좁은 의미에서 Java Beans 규칙은 단순히 생성자가 없거나 빈 생성자를 가져야 하며, getter/setter를 가진 클래스의 객체들을 의미함
앞의 예제에서 parameter로 사용되었던 SampleDTO의 경우는 Java Beans 규칙에 맞기 때문에 자동으로 다시 화면까지 객체가 전달되었음(전달 될 때는 클래스명의 앞글자는 소문자로 처리됨)
반면 기본 자료형의 경우는 parameter로 선언하더라도 기본적으로 화면까지 전달되지는 않음
아래 이미지처럼 SampleController에서 method를 작성한 뒤 브라우저에서 parameter의 값을 추가해서 호출해 보면 dto의 값은 화면에 전달되지만, page의 값은 화면에 전달되지 않음
화면에서의 결과는 아래와 같이 page에는 추가한 값이 안 들어왔음
@ModelAttribute는 강제로 전달받은 parameter를 Model에 담아서 전달하도록 할 때 필요한 어노테이션임, @ModelAttribute가 걸린 Parameter는 타입에 관계없이 무조건 Model에 담아서 전달되므로, parameter로 전달된 데이터를 다시 화면에서 사용해야 할 경우에 유용하게 사용됨
SampleController에 추가한 메서드의 parameter에 @ModelAttribute를 추가하면 아래와 같이 됨, 기본자료형에 @ModelAttribute를 적용할 경우에는 반드시 @ModelAttribute("변수명") value(int page) 이런식으로 지정해야 함
브라우저에서 호출 시 화면에 page의 값이 잘 전달된 것이 확인됨
jsp에서 Model에서 받아온 값을 출력하는 건 아래와 같음
${"Controller의 Model객체에서 설정한 변수명을 입력"}
'IT > development' 카테고리의 다른 글
[WAS] apache tomcat 8.0 이전 ver 다운로드... (0) | 2022.11.30 |
---|---|
[Spring]RequestMapping의 변화 (0) | 2022.11.30 |
[Java] java casting(string), String.valueOf(), String.toString() (0) | 2022.11.29 |
[egovframework](전자정부프레임워크) 설치 (0) | 2022.11.29 |
[IDE]IntelliJ springBoot 리소스 자동 리로드 (0) | 2022.11.29 |