MVC Framework For Easy
MVC Framework For Easy
Spring MVC
Framework Tutorial
06.14.2012
| 264200 views |
inShare3
The figure below shows the flow of request in the Spring MVC
Framework.
When a request is sent to the Spring MVC Framework the following
sequence of events happen.
Go to File -> New -> Dynamic Web Project, to create a web project.
Enter the project name and click the Finish button.
Right click the project folder, and select Spring Tools -> Add Spring
Project Nature, to add Spring capabilities to the web project. This
feature will be available once you install the Spring IDE.
Create a new package com.vaannila inside the src directory. The
Spring controller class
extendsorg.springframework.web.servlet.mvc.AbstractController clas
s. To create a new controller class right click the src directory and
create a new java class, enter the controller class name and super class
name and the Finish button.
Copy the following code inside the HelloWorldController class.
view source
print?
01.import javax.servlet.http.HttpServletRequest;
02.import javax.servlet.http.HttpServletResponse;
03.
04.import org.springframework.web.servlet.ModelAndV
iew;
05.import org.springframework.web.servlet.mvc.Abstr
actController;
06.
07.public class HelloWorldController extends Abstra
ctController {
08.
09.private String message;
10.
11.@Override
12.protected ModelAndView
handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
13.return new ModelAndView("welcomePage","welcomeMe
ssage", message);
14.}
15.
16.public void setMessage(String message) {
17.this.message = message;
18.}
19.
20.}
01.<bean id="viewResolver"
02.class=" org.springframework.web.servlet.view.
InternalResourceViewResolver" >
03.<property name="prefix">
04.<value>/WEB-INF/jsp/</value>
05.</property>
06.<property name="suffix">
07.<value>.jsp</value>
08.</property>
09.</bean>
10.
11.<bean
name="/welcome.htm" class="com.vaannila.HelloWorldC
ontroller" >
12.<property name="message" value="Hello World!" />
13.</bean>
14.
15.</beans>
First let's understand how to configure the controller.
view source
print?
1.<bean
name="/welcome.htm" class="com.vaannila.HelloWorldC
ontroller" >
2.<property name="message" value="Hello World!" />
3.</bean>
Here the name attribute of the bean element indicates the URL pattern
to map the request. Since the idattribute can't contain special
characters like "/" , we specify the URL pattern using
the name attribute of the bean element. By default
the DispatcherServlet uses the BeanNameUrlHandlerMapping to map
the incoming request. The BeanNameUrlHandlerMapping uses the
bean name as the URL pattern.
Since BeanNameUrlHandlerMapping is used by default, you need not
do any seperate configuration for this.
We set the message attribute of the HelloWorldController class thru
setter injection. TheHelloWorldController class is configured just like
an another JavaBean class in the Spring application context, so like
any other JavaBean we can set values to it through Dependency
Injection(DI).
The redirect.jsp will redirect the request to the DispatcherServlet,
which inturn consults with theBeanNameUrlHandlerMapping and
invokes the HelloWorldController.
The handleRequestInternal()method in the HelloWorldController
class will be invoked. Here we return the message property under the
name welcomeMessage and the view name welcomePage to
the DispatcherServlet. As of now we only know the view name, and
to find the actual view to invoke we need a ViewResolver.
The ViewResolver is configured using the following code.
view source
print?
01.<bean id="viewResolver"
02.class="
org.springframework.web.servlet.view.InternalResour
ceViewResolver">
03.<property name="prefix">
04.<value>/WEB-INF/jsp/</value>
05.</property>
06.<property name="suffix">
07.<value>.jsp</value>
08.</property>
09.</bean>
Here the InternalResourceViewResolver is used to resolve the view
name to the actual view. Theprefix value + view name + suffix
value will give the actual view location. Here the actual view location
is /WEB-INF/jsp/welcomePage.jsp
The following library files are needed to run the example.
view source
print?
01.antlr-runtime-3.0
02.commons-logging-1.0.4
03.org.springframework.asm-3.0.0.M3
04.org.springframework.beans-3.0.0.M3
05.org.springframework.context-3.0.0.M3
06.org.springframework.context.support-3.0.0.M3
07.org.springframework.core-3.0.0.M3
08.org.springframework.expression-3.0.0.M3
09.org.springframework.web-3.0.0.M3
10.org.springframework.web.servlet-3.0.0.M3
To execute the example run the redirect.jsp file. The following page
will be displayed.
You can download and try the Spring MVC example by clicking the
Download link below.