본문 바로가기

spring/Web

여러개의 설정파일 설정하기

init-param 태그를 이용하여 설정파일의 경로와 파일명을 명시하면된다.


아래의 예제에서는 각 servlet 파일에 InternalResourceViewResolver 를 설정해 줬는데 web.xml에서 가장 먼저 명시된 hello-servlet.xml 설정 파일의 설정만 적용된다.


따라서 모든 controller에 대한 InternalResourceViewResolver 설정은 다른 설정파일과는 상관없이 hello-servlet.xml에서 설정한


<property name="prefix" value="/"/>

<property name="suffix" value=".jsp"/>


와 같이 적용된다.



============================================================================================================================================

web.xml


<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">

  <display-name>s_mvc3_mulixml</display-name>

  <servlet>

    <servlet-name>test</servlet-name>

    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

    <init-param>

      <param-name>contextConfigLocation</param-name>

      <param-value>

  /WEB-INF/hello-servlet.xml 

  /WEB-INF/abc/world.xml

  </param-value>

    </init-param>

  </servlet>

  <servlet-mapping>

    <servlet-name>test</servlet-name>

    <url-pattern>*.do</url-pattern>

  </servlet-mapping>

</web-app>


============================================================================================================================================

<?xml version="1.0" encoding="UTF-8"?>

<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.xsd">

<!-- Controller  -->

<bean name="/hello.do" class="pack.HelloController"/>

<bean name="/happy.do" class="pack.HappyController"/>

<!-- ViewResolver : InternalResourceViewResolver -->

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<property name="prefix" value="/"/>

<property name="suffix" value=".jsp"/>

</bean>


</beans>


============================================================================================================================================

<?xml version="1.0" encoding="UTF-8"?>

<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.xsd">

<!-- Controller  -->

<bean name="/world/world.do" class="pack.WorldController"/>

<!-- ViewResolver : InternalResourceViewResolver -->

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<property name="prefix" value="/view/"/>

<property name="suffix" value=".jsp"/>

</bean>


</beans>


============================================================================================================================================
여러 Controller 들 중 일부..

package pack;


import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.servlet.ModelAndView;


@Controller

public class HappyController {

@RequestMapping(method=RequestMethod.POST) // name을 명시하지 않으면 url-pattern을 제외한 URL 문자열과 메소드 이름이 mapping 됨

public ModelAndView happy(){ 

ModelAndView view = new ModelAndView();

view.setViewName("list1");

view.addObject("msg","HappyController-POST");

return view;

}

}