reset password

Spring MVC

Make the following changes to the Maven web application we created in the previous step:

1. Add the dependency org.springframework:spring-webmvc.

2. Add the following to web.xml:

    <servlet>
        <servlet-name>sham</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>sham</servlet-name>
        <url-pattern>*.html</url-pattern>
    </servlet-mapping>

The DispatcherServlet is loaded when the web application is started (notice the <load-on-startup>), and it is responsible for initializing the Spring application context, i.e. creating all the beans specified in one or more bean configuration files. In our case we are only using one bean configuration file /WEB-INF/spring.xml. During operation DispatcherServlet also serves as the front controller that dispatches requests to the proper controller based on controller URL mapping.

3. Create the Spring bean configuration file /WEB-INF/spring.xml as follows:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd  
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <mvc:annotation-driven />

    <context:component-scan base-package="sham.web" />

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

</beans>

<mvc:annotation-driven /> enables request dispatching to @Controllers among some other things. <context:component-scan> finds all the annotated beans under sham.web and its sub-packages. The InternalResourceViewResolver maps a view name to a JSP file. It has two properties: prefix and suffix, so a view name like "home" would be mapped to a JSP file /WEB-INF/home.jsp.

And this is pretty much it - your web application is now a Spring MVC application. You can test it by creating a controller and a view like the following:

This page has been viewed 26948 times.