위 코드를 보시면 servlet.xml 코드입니다. spring에는 Servlet-context.xml 라고 지정되어 있을거예요.
여기를 보시면 맨아래 두줄 name="prefix"와 그아래 name="suffix" 보이시나요?
prefix는 접두어, suffix는 접미어로 사용한다고 생각하시면 됩니다.
무슨말인지 설명해드릴께요. 만약 제가 page.jsp라는 페이지로 이동을 하려합니다.
그런데 해당 page.jsp의 경로는 /test/page.jsp에 있을때, 컨트롤러에서는 /test/page.jsp이런식으로 리턴을 해줘야해요.
하지만 위 코드처럼 앞에는 /test/가 붙고 뒤에는 .jsp붙는다면? 컨트롤러에서 page라는것만 리턴하면 자동으로 해당 페이지를 찾아주게 됩니다.
이말은 즉, 페이지명이 달라도 해당경로, 파일 확장자가 같다면 컨트롤로에서는 논리적인 뷰이름만 리턴해줘도 되는것입니다.
자, 그럼 .do라는 파일이 있습니다. 이 .do는 /WEB-INF/views/ 아래 있을때 어떤식으로 써야할까요??
정답은
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".do" />
여기서 궁금증이 생기시는 분들이 계실거라고 생각해요.
뷰 이름만 리턴했을때 sevlet.xml에 지정되 있는 prefix와 suffix 경로로 리턴받는다는건 알겠어. 근데 어떻게 알고 페이지를 로딩하지?
InternalResourceViewResolver라는 곳을 보면 컨트롤러에서 return 받은 객체에 선언된 view 페이지를 지정해주는 클래스가 존재하기 때문입니다.
'JavaScript > Spring' 카테고리의 다른 글
[Spring framework] 스프링 의존성과 DI (0) | 2022.01.26 |
---|---|
[spring framework]스프링 컨테이너란? IoC? (0) | 2022.01.25 |
[spring framework] spring 신입 웹 개발자 면접 질문 모음(스프링 면접 질문) (0) | 2022.01.24 |
[이클립스 spring 오류 해결 방법] spring 이클립스 서버 구동시 오류 sqlmap </sqlmap> (0) | 2022.01.22 |
[Spring framework] 스프링 프레임워크 이해하기 3(기본) - 디자인패턴 (0) | 2022.01.21 |