Spring MVC XmlViewResolver example

来源:互联网 发布:最新十字绣软件 编辑:程序博客网 时间:2024/05/19 17:56

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

  • “id” is the “view name” to resolve.
  • “class” is the type of the view.
  • “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.
使用另外一个xml来配置url的匹配页面

0 0