일기장/하루 정리

220316 [수] OT , @ModelAttribute , @SessionAttribute

Supersett 2022. 3. 16. 10:13



[오늘의 계획]
1. 수업내용 복습

2. 7시 멋쟁이사자처럼 OT

3. 서류,면접관련 글 작성하기


[오늘의 공부]
@ModelAttribute : 뷰페이지(JSP)에서 사용하기 위한 속성값(객체)

→ 메소드에 선언하면 메소드 반환값을 컨트롤러 클래스에 모든 요청 처리 메소드의 뷰페이지에게 속성값으로 제공

⇒ 매개변수에 선언하면 매개변수에 저장된 값을 요청 처리 메소드의 뷰페이지에게 속성값으로 제공할 수 있다.

⇒ 메소드의 뷰페이지에게 속성값으로 제공- 매개변수에 저장된 전달값을 뷰페이지에게 제공

  • 매개변수의 이름과 전달값의 이름이 같지 않아도 400에러 미발생
  • 매개변수의 자료형이 기본형이나 String 클래스인 경우 반드시 value속성을 설정해야 한다.

value 속성 : 뷰페이지에 제공하기 위한 속성명을 속성값으로 설정 => 다른 속성이 없는 경우 속성값만 설정 가능

[ClassNotFoundException 오류 발생시 체크해야할 사항]

spring-context라는 라이브러리를 빌드해야 한다.

→maven-dependency 부분을 잘 체크해주어야 한다.

전달값을 dto 클래스로 만들어주는 경우가 많다.

사용자 입력 정보를 dto로 저장해서 한번에 서비스클래스가 이용한다.

Java Bean 클래스 : 웹프로그램 요청시 전달한 값을 저장하기 위한 클래스

ㅡdao 클래스에서 사용할 경우 dto 클래스의 기능 수행

ㅡ전달값의 이름과 같은 이름의 필드를 선언하면 전달값이 필드에 자동으로 저장된다.(Setter 메소드 호출) - 프론트 컨트롤러가 해줘!!

요청처리 메소드의 매개변수 자료형을 javaBean 클래스로 선언하면 프론트가 javaBean객체(Command 객체)를 생성하여 전달값을 필드에 저장하여 제공한다.

Command 객체 : 전달값이 필드에 저장된 객체로 요청처리 메소드의 뷰페이지에서 제공되는 매개변수에 저장되어 뷰페이지에서 사용되도록 제공되는 객체

⇒ 전달값은 같은이름의 필드에 저장된다.

⇒ 뷰페이지에서 사용되도록

@SessionAttribute : model 객체를 이용하여 요청처리 메소드에 뷰페이지에게만 제공되는 속성값(객체)을 현재 Controller 클래스의 모든 요청 처리 메소드의 뷰페이지에게 제공하는 어노테이션

⇒ model객체를 이용하여 저장된 속성값이 request Scope가 아닌 제한적인 Session Scope 역할을 수행한다.

⇒ 변경처리 시, 다른 요청 처리 메소드에서 필요한 정보를 전달하거나 검색하는 작업을 생략하기 위해 사용한다.

value 속성 : 제한적인 Session Scope로 처리하기 위한 속성명을 속성값으로 설정

⇒ 다른 속성이 없는 경우 속성값만 설정 가능

session 에 다 담아놨으므로.. id 따로 전달안해줘도 된다..... 컨트롤러가 통제하는 뷰들은 다 사용 가능하다......