on
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