Java XML Tutorial

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 Author

author image
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

Subscribe
Notify of
7 Comments
Most Voted
Newest Oldest
Inline Feedbacks
View all comments
aji
5 years ago

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
7 years ago

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

Rahman
10 years ago

Thank You very much for such great videos

Aditya
11 years ago

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
12 years ago

Hello,
There is a spelling mistake in below line

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

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

Good posts

srinivasarao gurram
10 years ago
Reply to  mkyong

one can call the application using following URML.
http://localhost:8080/SpringMVC/welcomepage.htm