일기장/하루 정리

220315 [화] Annotation MVC 설정

Supersett 2022. 3. 15. 10:17




[오늘의 특이점]
오늘은 할게 좀 여러모로 많으니 부지런히 움직여야겠다


[오늘의 계획]
1. 동사무소 격리지원금신청

2. 으뜸플러스 렌즈 구매

3. 빠르게 들어가서 강의듣기

4. 수업내용 복습


[오늘의 공부]
오늘은 노션에 정리하고 옮길것임. 어제 티스토리에 저장한거 두번 날아감.
@RequestMapping("/helloViewName")

→뒤의 value 부분은 절대로 중복되면 안됩니다.

반환받아 포워드 이동하여 응답처리 1.요청 처리 메소드의 반환형을 void 자료형으로 작성하면 메소드명을 ViewName으로 제공

→ 오버로드하게되면 문제가생겨서 ..

2.요청 처리 메소드의 반환형 : String

→ 문자열을 viewName으로 제공한다.

3.요청 처리 메소드의 반환형 : ModelAndView

→ ModelAndView 객체에 있는 ViewName이 ViewName이 된다.

요청처리 메소드는 viewName을 꼭 전달해야 한다.

[요청처리 메소드의 처리결과를 뷰페이지(JSP)에게 제공하는 방법]

ModelAndView.addObject(String attributeName, Object attributeValue) => 뷰페이지(JSP)에서 처리결과를 사용할 수 있도록 속성값으로 저장하는 메소드 - Request Scope modelAndView.addObject("mavName", "홍길동");

요청처리 메소드는 front controller에 의해 호출되는 메소드

→ 요청처리 메소드에 매개변수를 작성하면 front Controller가 Spring Container로 부터 필요한 Spring bean 객체를 제공받아 매개변수에 자동 저장하여 제공

이렇게 주로 할겁니다.

Model : 처리결과를 속성값으로 저장하기 위한 객체

컨트롤러클래스 → 요청처리 클래스를 만들어주기위해서 만들어줌

요청처리 메소드 + 요청처리 메소드의 뷰페이지에게 반환값(객체)를 사용할 수 있도록 제공하는 메소드

@ModelAttribute : ModelAttribute 어노테이션을 메소드에 선언한 경우 현재 Controller클래스에 선언된 모든 요청처리 메소드의 뷰페이지에게 반환값(객체)를 사용할 수 있도록 제공하는 Annotation

value 속성 : 뷰페이지에서 반환값을 사용하기 위한 속성명을 속성값으로 설정

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

[리다이렉트이동시!!]

반환되는 viewName 앞에 redirect 접두사(NameSpace)를 사용하면 리다이렉트이동

→ viewName에 의해 뷰페이지(JSP)로 응답하는 대신 클라이언트에게 URL주소전달

리다이렉트 이동 : 클라이언트에게 URL 주소를 전달하여 재요청되도록 응답 처리

**전달값의 이름과 같은 이름의 String 자료형의 매개변수를 선언하면 Front Controller에 의해 전달값이 자동으로 매개변수에 저장되어 제공된다.

→ 한글설정하기위해 web.xml파일에서 EncodingFilter를 설정해주어야 한다.

[EncodingFilter 설정하기]

위치 : 리스너, 서블릿 사이에 선언

Filter : 필터클래스를 필터로 등록하기 위한 엘리먼트