2.용어정리(4)-ViewResolver,prefix,suffix

2.용어정리(4)-ViewResolver,prefix,suffix

반응형

InternalResourceViewResolver

- ViewResolver의 디폴트 클래스

BeanNameViewResolver

- 경로다각화

- 결과페이지가 없는 File Download, Ajax

prefix(접두어) /suffix(접미어)

https://milkye.tistory.com/267 prefix - Controller가 리턴한 뷰 이름 앞에 붙을 접두어

suffix - Controller가 리턴한 뷰 이름 뒤에 붙을 확장자

더보기 그냥 jsp경로 앞뒤에 붙는거구나라고 생각했는데 찾아보고는 공부가 필요하다고 느꼈다.

ViewResolver

- 컨트롤러가 지정한 뷰 이름으로 View객체를 구한다.

- View객체에는 컨텐트타입(text/html)을 리턴하는 getContentType() 메서드와 파라미터로 모델과 요청/응답 객체를 갖는 render()메서드가 있다.

- ViewResolver구현 클래스 (검색어 : Spring MVC 뷰 리졸빙)

1) InternalResourceViewResolver

: 뷰 이름으로 JSP나 Tiles연동을 위한 View객체를 리턴

2) BeanNameViewResolver

: 뷰 이름과 동일한 이름의 빈 객체를 View객체로 사용한다.

InternalResourceViewResolver

- JSP, HTML과 같은 웹 어플리케이션의 내부 자원을 이용해서 응답 결과를 생성한다.

JSTL이 존재할 경우 하위 타입은 JstlView객체를 리턴한다.

/WEB-INF 하위에 JSP파일을 위치시키는 이유는 클라이언트가 직접 접근하는 것을 막기 위해서다.

웹 컨테이너가 /WEB-INF 하위 경로에 접근하는 것을 제한한다.

BeanNameViewResolver

- 뷰 이름과 동일한 이름을 갖는 빈 객체를 뷰로 이용한다.

주로 파일 다운로드 기능을 위한 커스컴 View클래스로 사용된다.

@Controller public class downloadClass{ public ModelAndView download(MultipartHttpServletRequest request, HttpServletResponse response){ File downloadFile = request.getFile("file"); return new ModelAndView("download", "downloadFile", downloadFile); } } --------------------------------------------------------------------------------------------

다수의 ViewResolver설정하기

- 하나의 DispatcherServlet에서 2개이상의 ViewResolver를 가질 수 있다.

- order 값이 작은 순서대로 ViewResolver에게 뷰이름에 해당하는 View객체를 요청한다.

우선순위가 높은 ViewResolver가 null을 리턴하면 그 다음 순위에게 요청한다.

IntervalResourceViewResolver는 null리턴하지 않으므로 가장 낮은 순위를 지정해야 한다.

https://javacan.tistory.com/tag/VelocityViewResolver

SimpleUrlHandlerMapping에서 사용되는 규칙

? - 한 글자에 매칭된다.

* - 0 개 이상의 글자에 매칭된다.

** - 0개 이상의 디렉토리에 매칭된다. 더보기 com/t?st.jsp - com/test.jsp, com/tast.jsp 또는 com/txst.jsp 등에 매칭된다. com/*.jsp - com 디렉토리에 있는 모든 .jsp에 매칭된다. com/**/test.jsp - com 경로 아래에 위치한 모든 test.jsp와 매칭된다. org/springframework/**/*.jsp - org/springframework 경로 아래에 위치한 모든 jsp와 매칭된다.

BeanNameUrlHandlerMapping , SimpleUrlHandlerMapping 구현체의 공통 프로퍼티

interceptors - 사용할 인터셉터의 목록

- defaultHandler - 매칭되는 핸들러를 찾지 못할 때 사용할 기본 핸들러

- order - 하나의 서블릿 콘텍스트에서 다수의 HandlerMapping을 사용할 수 있는데, 이 경우 HandlerMapping 간의 우선순위를 지정한다

[참조]

https://windorsky.tistory.com/entry/spring-prefix-suffix-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0

https://milkye.tistory.com/267

https://j2yes.tistory.com/entry/viewresolver-prefix-suffix-%EB%93%B1%EB%A1%9D

https://icefree.tistory.com/entry/Spring-BeanNameViewResolver

https://velog.io/@ednadev/%EC%8A%A4%ED%94%84%EB%A7%81-6-ViewResolver

https://midas123.tistory.com/201

https://javacan.tistory.com/tag/VelocityViewResolver

반응형

from http://action713.tistory.com/1660 by ccl(A) rewrite - 2021-12-09 11:01:50