How Spring MVC works
Basically the same way as Struts:
- Based on the HTTP request URL, the DispatcherServlet calls the corresponding Controller.
- A View is rendered and sent as HTTP response.
Spring Servlet Declaration
In 'WEB-INF/web.xml', we declare Spring DispatcherServlet and map '*.html' URLs to it:
springmvc
org.springframework.web.servlet.DispatcherServlet
1
springmvc
*.html
jsp/index.jsp
Spring Servlet Configuration
Let's now create the Spring configuration file 'WEB-INF/springmvc-servlet.xml' (name based on the servlet name above):
Map URL /hello_world.html to Controller HelloWorldController
Declare View Resolver: when view 'view_name' is called (from the Controller), the file '/jsp/view_name.jsp' will be used.
Controller
Let's create the Controller 'WEB-INF/src/springmvc/web/HelloWorldController.java':
package springmvc.web;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class HelloWorldController implements Controller {
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String aMessage = "Hello World MVC!";
ModelAndView modelAndView = new ModelAndView("hello_world");
modelAndView.addObject("message", aMessage);
return modelAndView;
}
}
This Controller calls the view 'hello_world', passing 'message' to it (like a Struts attribute).
View
Displays the message attribute previously set in the Controller.
Make it work
http://localhost:8180/springmvc/hello_world.html
- We declared Spring servlet in web.xml
- We created a Spring configuration file where we mapped an URL to a controller and defined a way to resolve views.
- We created a controller and a view
0 comments:
Post a Comment
Please provide your valuable comment.