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。

  • 相关阅读:
    CCleaner软件免费试用版与付费专业版区别
    TeamViewer 15.6.7新版本发布
    ABAPGIT用法
    ABAPGIT安装,配置及更新
    ABAPGIT安装,配置及更新
    SAP发布的WebService的登陆语言设置
    使用CG3Z向服务器添加文件时,报错:No physical path is configured for logical file name EHS_FTAPPL_2
    PO/PI 系统蓝图(SLD),企业服务存储库(ESR),整合目录(ID)基础配置
    S4 到 PO/PI proxy 配置手册
    在PI SLD中注册ABAP Technical System
  • 原文地址:https://www.cnblogs.com/rollenholt/p/2835963.html
Copyright © 2011-2022 走看看