UrlBasedViewResolver Example in Spring 2.5 MVC
The UrlBasedViewResolver is provides the mapping logical view names and URLs directly that hands over to the view class specified. The UrlBasedViewResolver provides a convenient shape called InternalResourceViewResolver that support JSP, Servlet, JstlViews and TileViews. In this example, we will discuss about how to use of UrlBasedViewResolver in your project.
Step 1:
Now we will create a index.jsp file that will have a link to generate user request. The code of the index.jsp is:
<%@page contentType="text/html" pageEncoding="UTF-8"%> <html> <head> <title>URL Based View Resolver</title> </head> <body> <center> <a href="urlbasedviewresolver.html">URL Based View Resolver</a> </center> </body> </html> |
Step 2:
Now we will customize the the web.xml file for the DispatcherServlet and set index.jsp as a welcome file . The code of the web.xml file is:
<?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/j2ee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd" version="2.5"> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> 0 <servlet-name>dispatcher</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping> 1 <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> 2 <taglib> <taglib-uri>/spring</taglib-uri> <taglib-location>/WEB-INF/spring.tld</taglib-location> 3 </taglib> </web-app> |
Step 3: 4
Now we will create dispatcher-servlet.xml inside the /WEB-INF/ folder. In this dispatcher-servlet.xml we will include some code that are important to use UrlBasedViewResolver. The UrlBasedViewresolver much similar to the InternalResourceViewresolver. The code for the UrlBasedViewResolver in the dispatcher-servlet.xml is:
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 5 <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> 6 </bean> |
Through this view resolver we have direct mapping the url to actual view. In the Spring MVC, every controller return a view after that the view resolver append the prefix and suffix in this view and show the view as response. The full code of the dispatcher-servlet.xml is:
<?xml version="1.0" encoding="UTF-8"?> 7 <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 8 http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> 9 <props> <prop key="/urlbasedviewresolver.html">urlBasedViewResolverController</prop> </props> 0 </property> </bean> <bean name="urlBasedViewResolverController" 1 class="net.roseindia.web.UrlbasedViewResolver"> </bean> <bean id="viewResolver" 2 class="org.springframework.web.servlet.view.UrlBasedViewResolver"> <property
name="viewClass"
value= <property name="prefix" value="/WEB-INF/jsp/"/> 3 <property name="suffix" value=".jsp"/> </bean> </beans> 4 |
Step 4:
Now we will create a message.jsp inside the /WEB-INF/jsp/ folder. This jsp file display when controller send response for the user. The code of the message.jsp is:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 5 pageEncoding="ISO-8859-1"%> <html> <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>URL Based View Resolver Example</title> </head> 7 <body> <center> <table> 8 <tr> <td> <b>${message}</b> 9 </td> </tr> </table> 0 </center> </body> </html> 1 |
Step 5:
Now we will create a controller class for handle the user request that implements the AbstractController. The controller class name is UrlbasedViewResolver.java. This controller class return a message and ModelAndView. The code of the UrlbasedViewResolver.java is:
package net.roseindia.web;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
public class UrlbasedViewResolver extends AbstractController {
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response)throws Exception {
String Message = "This is URL Based View Resolver Test Example.";
ModelAndView modelAndView = new ModelAndView("message");
modelAndView.addObject("message", Message);
return modelAndView;
}
}
Step 6: 2
Now we will run this application and see the output like:
Now user click on this link and see like: 3
Download code