zoukankan      html  css  js  c++  java
  • Spring MVC视图解析器:Spring MVC XmlViewResolver示例

    在Spring MVC中,使用XmlViewResolver基于XML文件中的视图bean来解析“视图名称”。默认地,XmlViewResolver将从/WEB-INF/views.xml中加载视图bean,不过,这个位置可以通过“location”属性覆盖:

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

    在上面这个例子中,它从“/WEB-INF/spring-views.xml”加载视图bean。请看下面的XmlViewResolver示例。

    1.  Controller控制器

    一个控制器类WelcomeController.java,返回一个名为“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视图解析器

    在Spring的bean配置文件中,注册XmlViewResolver视图解析器,从“/WEB-INF/spring-views.xml”加载视图bean。

    <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" />
    
             <!--注册bean -->
             <bean class="cn.xuejava.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.  视图bean

    视图bean就是一个普通的Spring bean,在Spring bean配置文件中声明。其中:

    (1)“id”是要解析的视图名称

    (2)“class”是视图的类型

    (3)“url”属性是视图的url位置

    文件:spring-views.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <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/jsp/WelcomePage.jsp" />
        </bean>
    
    </beans>

    解析过程:

    当控制器返回一个名为“WelcomePage”的视图时,XmlViewResolver将在“spring-views.xml”文件中查找id为“WelcomePage”的bean,并返回相对应的视图URL“/WEB-INF/jsp/WelcomePage.jsp”给DispatcherServlet。

  • 相关阅读:
    Linux环境下使用eclipse开发C++动态链接库程序
    例解 autoconf 和 automake 生成 Makefile 文件
    linux下编译boost
    在linux下如何编译C++程序
    windows和linux套接字中的select机制浅析
    看到关于socket非阻塞模式设置方式记录一下。
    MySQL批量执行sql文件
    Sqlcmd使用详解
    批量执行SQL文件
    SpringCloud微服务之跨服务调用后端接口
  • 原文地址:https://www.cnblogs.com/rollenholt/p/2835963.html
Copyright © 2011-2022 走看看