Spring MVC XmlViewResolver example

In Spring MVC, XmlViewResolver is used to resolve “view name” based on view beans in the XML file. By default, XmlViewResolver will loads the view beans from /WEB-INF/views.xml, however, this location can be overridden through the “location” property :


<beans ...>
	<bean class="org.springframework.web.servlet.view.XmlViewResolver">
	   <property name="location">
		<value>/WEB-INF/spring-views.xml</value>
	   </property>
	</bean>
</beans>

In above case, it loads the view beans from “/WEB-INF/spring-views.xml“. See XmlViewResolver example :

1. Controller

A controller class, returns a view, named “WelcomePage“.


//...
public class WelcomeController extends AbstractController{
	
	@Override
	protected ModelAndView handleRequestInternal(HttpServletRequest request,
		HttpServletResponse response) throws Exception {

		ModelAndView model = new ModelAndView("WelcomePage");
		
		return model;
	}
}

2. XmlViewResolver

Register the XmlViewResolver in the Spring’s bean configuration file, loads the view beans from “/WEB-INF/spring-views.xml“.


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

   <bean 
   class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping" />
	
	<!-- Register the bean -->
	<bean class="com.mkyong.common.controller.WelcomeController" />

	<bean class="org.springframework.web.servlet.view.XmlViewResolver">
	   <property name="location">
	       <value>/WEB-INF/spring-views.xml</value>
	   </property>
	</bean>

</beans>

3. View beans

The “view bean” is just a normal Spring bean declared in the Spring’s bean configuration file, where

  1. id” is the “view name” to resolve.
  2. class” is the type of the view.
  3. url” property is the view’s url location.

File : spring-views.xml


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

	<bean id="WelcomePage"
		class="org.springframework.web.servlet.view.JstlView">
		<property name="url" value="/WEB-INF/pages/WelcomePage.jsp" />
	</bean>

</beans>
How it works ?
When a view name “WelcomPage” is returned by controller, the XmlViewResolver will find the bean id “WelcomPage” in “spring-views.xml” file, and return the corresponds view’s URL “/WEB-INF/pages/WelcomPage.jsp” back to the DispatcherServlet.

Download Source Code

Reference

  1. XmlViewResolver documentation

About the Author

author image
mkyong
Founder of Mkyong.com, love Java and open source stuff. Follow him on Twitter. If you like my tutorials, consider make a donation to these charities.

Comments

avatar
8 Comment threads
2 Thread replies
1 Followers
 
Most reacted comment
Hottest comment thread
7 Comment authors
ajiMohanRaoRahmansrinivasarao gurramAditya Recent comment authors
newest oldest most voted
aji
Guest
aji

i see in in spring-views.xml, the class value is JstlView,
is it always filled with JstView when i want to register another view url?

MohanRao
Guest
MohanRao

I think all these are related 2.5 version, kindly update them to 4.* version

Rahman
Guest
Rahman

Thank You very much for such great videos

Aditya
Guest
Aditya

Hello,

Can we have more than 1 location or view file for XmlViewResolver.
If not can we create 2 beans of XmlViewResolver.

Thank You
Aditya

Chintan Patel
Guest
Chintan Patel

Hello,
There is a spelling mistake in below line

In Spring MVC, XmlViewResolver is used to resolve “view anme” based

on your
http://www.mkyong.com/spring-mvc/spring-mvc-xmlviewresolver-example/
post

Good posts

trackback
Configure multiple view resolvers priority in Spring MVC

[…] (7KB)ReferencesSpring MVC InternalResourceViewResolver exampleSpring MVC XmlViewResolver exampleSpring MVC ResourceBundleViewResolver example […]

trackback
Spring MVC Tutorials

[…] XmlViewResolver example It resolves the view name based on view beans in the XML file. […]

trackback
Spring MVC export data to Excel file via AbstractExcelView

[…] Spring MVC XmlViewResolver example […]