Spring MVCを使うために最低限の配置

Java Config記法

【前提】各ファイル格納パッケージ(パッケージ名は自由):
コンフィグファイル:com.mxy.config
コントローラーファイル:com.mxy.controller
サービスファイル:com.mxy.service
jspファイル:/WEB-INF/jsp/

web.xml

<web-app ...>
  ...
  <servlet>
    <servlet-name>app</servlet-name>
    <servlet-class>
       org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <init-param>
      <param-name>contextClass</param-name>
      <param-value>
        org.springframework.web.context.support.AnnotationConfigWebApplicationContext
      </param-value>
    </init-param>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>com.mxy.config.WebMvcConfig</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>app</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

com.mxy.config.WebMvcConfig.java

@Configuration
@EnableWebMvc
@ComponentScan({"com.mxy.controller", "com.mxy.service"})
public class WebMvcConfig extends WebMvcConfigurerAdapter {
    public void configureViewResolvers(ViewResolverRegistry registry) {
        registry.jsp().prefix("/WEB-INF/jsp/");
    }
}

com.mxy.config.WebMvcConfig.java(Springバージョンが古い場合)

@Configuration
@EnableWebMvc
@ComponentScan({"com.mxy.controller", "com.mxy.service"})
public class WebMvcConfig extends WebMvcConfigurerAdapter {
     @Bean
     public ViewResolver configureViewResolver() {
         InternalResourceViewResolver viewResolve = new InternalResourceViewResolver();
         viewResolve.setPrefix("/WEB-INF/jsp/");
         viewResolve.setSuffix(".jsp");
         return viewResolve;
     }
}

xml記法

【前提】各ファイル格納パッケージ(パッケージ名は自由):
コントローラーファイル:com.mxy.controller
サービスファイル:com.mxy.service
jspファイル:/WEB-INF/jsp/

web.xml

<web-app ...>
  ...
  <servlet>
    <servlet-name>app</servlet-name>
    <servlet-class>
       org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>app</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

app-servlet.xml

<beans xmlns = "http://www.springframework.org/schema/beans"
   xmlns:context = "http://www.springframework.org/schema/context"
   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
   http://www.springframework.org/schema/context
   http://www.springframework.org/schema/context/spring-context.xsd">

   <context:component-scan base-package = "com.mxy.controller" />
   <context:component-scan base-package = "com.mxy.service" />

   <bean class = "org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name = "prefix" value = "/WEB-INF/jsp/" />
      <property name = "suffix" value = ".jsp" />
   </bean>
</beans>