JAVA

Spring) model

로픽 2017. 3. 3. 14:52
300x250

model 객체

- Controller 에서 생성된 데이터를 담아서 View 로 전달할 때 사용하는 객체.

- Servelt 의 request.setAttribute() 와 유사한 역할.

- Method 에 Model 타입이 지정된 경우 Model 타입의 객체를 만들어서 메서드에 주입

- addAttribute("키", "값") 메소드를 사용하여 전달할 데이터 세팅.

 

Ex) 활용 예시

* 리스트 페이지 번호를 파라미터로 전달받고, 실제 데이터를 View 로 전달해야 하는 경우

* 파라미터에 대한 처리 후 결과를 전달해야 하는 경우

 

HomeController Model 예시

 

Home model 값을 받아온 home.jsp

 

Home 출력결과 (??는 한글 인코딩문제)


@ModelAttribute

- 강제로 전달받은 파라미터를 Model에 담아서 전달하도록 할 때 필요한 어노테이션

- 스프링에서 Java beans 규칙(Getter, Setter, 생성자 포함)에 맞는 객체는 파라미터 전달이 자동으로 가능.

- 하지만 일반 변수의 경우, 자동 전달 불가능. model 객체를 통해서 전달 필요.

 

* @ModelAttribute("파라미터명")

ex) 일반 변수에 @ModelAttribute 없이 파라미터 전달시

int page - @ModelAttritube 미적용 / Lombok을 이용한 SampleDTO
JSP 페이지 및 URL 파라미터 전달.

- SampleDTO(Java beans)의 name, age 값은 정상적으로 출력되지만, page 변수의 경우 결과 값이 출력되지 않는다.

 

ex) 일반 변수에 @ModelAttribute 적용 후 파라미터 전달시

@ModelAttribute

- 어노테이션만 추가해주면 간단하게 파라미터 전송 가능.


20.12.20 수정 - model 객체

 

 

도움되셨다면 공감 버튼 꾹 눌러주세요
오늘도 좋은 하루 되세요~

반응형