Web Application Context 작성
참조 : Spring MVC 어플리케이션 개발 <3> Web Application Context 파일 작성
Spring Reference에 Dispatcher와 WebApplicationContex와의 관계를 나타낸 그림이 있어서 퍼왔습니다.
앞에서 addressBook-servlet.xml로 .do로 끝나느 요청을 넘기기로 했고 지금 이 글에서 작성해야할 addressBook-servlet.xml을 예전에는 hanlderMapping이라고 머릿속으로 단순화 시켜서 인식하고 있었는데 그게 아닌 것 같습니다. addressBook-sevlet.xml은 WebApplicationContext이고 이 안에 Handler Mapping, View Resolver, Controller들을 등록해 둘 수 있는 것 같습니다.
web/WEB-INF 폴더 안에 addressBook-servlet.xml 이라는 파일을 생성합니다.
Spring 2.0에서 XML 기반의 configuration metadata의 기본 포맷은 다음과 같습니다.
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="..." class="...">
<!-- collaborators and configuration for this bean go here -->
</bean>
<bean id="..." class="...">
<!-- collaborators and configuration for this bean go here -->
</bean>
</beans>
이제 여기에 Handler Mapping, View Resolver, Controller들을 넣어 봅시다.
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
위와 같이 등록해 둡니다. view앞에는 /WEB-INF/jsp/ 를 붙이고 뒤에는 .jsp를 붙여서 실제 파일을 찾을 수 있도록 합니다. viewClass 속성은 jsp가 JSTL을 사용할 때 적어주는 것 같습니다.
<bean name="/index.do"
class="org.springframework.web.servlet.mvc.ParameterizableViewController">
<property name="viewName" value="index" />
</bean>
index.do 요청이 발생하면 ParameterizableViewController로 요청이 넘어가고 이 녀석은 view 이름으로 index를 반환해 줍니다. 그럼 이것이 View Resolver를 타고 /WEB-INF/jsp/index.jsp 를 찾게 됩니다.
이제 addressBook-servlet.xml 파일은 다 만든것 같습니다.
bk66.xml
실제 web/WEB-INF 폴더 밑에 jsp라는 폴더를 만들고 그 안에 index.jsp 파일을 만듭니다. index.jsp파일은 제대로 돌아가는지 확인하기 위해 "오~케이!!!"가 출력 되도록 간단히 만들어 봤습니다.
bk65.jsp
그리고 서버를 가동 시키면....
bk64.bmp헉... 이렇게 나오네요;; 음~ 각본에 없던 것이 발생했습니다.
원래대로면 Jstl.jar파일이 없어서 에러가 발생해야 하는데..왜 404가 뜨는지 모르겠군요. 분명히 addressBook-servlet.xml파일은 존재하는데;; 일단은 문제가 발생했으니 여기서 STOP해야겠습니다.
=> 문제 해결 됨. 서버 에서 실행(Run on Server)를 할 때 Alt + Shift + x -> R 단축키를 사용하지 말고 프로젝트 이름 우클릭 -> Run as -> Run on Server 클릭하면 됩니다.