zoukankan      html  css  js  c++  java
  • spring mvc:视图解析器

    ModelAndView对象中的view对象,可以使用字符串来让Spring框架进行解析获得适合的视图。而解析View的就是ViewResolver技术。

    ViewResolver的定义如下:

    public interface ViewResolver {
    View resolveViewName(String viewName, Locale locale) throws Exception;
    }
     
    在[spring-dispatcher-name]-servlet.xml中,可以定义viewResolver:

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/jsp/"/>
            <property name="suffix" value=".jsp"/>
        </bean>

    来让DispacherServlet进行加载默认的viewResolver,如果没有设置viewResolver,spring使用InternalResourceViewResolver进行解析。

    Spring实现ViewResolver的非抽象类且我们经常使用的viewResolver有以下四种:

    InternalResourceViewResolver 将逻辑视图名字解析为一个路径
    BeanNameViewResolver 将逻辑视图名字解析为bean的Name属性,从而根据name属性,找定义View的bean
    ResourceBundleResolver 和BeanNameViewResolver一样,只不过定义的view-bean都在一个properties文件中,用这个类进行加载这个properties文件
    XmlViewResolver 和ResourceBundleResolver一样,只不过定义的view-bean在一个xml文件中,用这个类来加载xml文件

    使用多视图解析器:

    我们不想只使用一种视图解析器的话,可以在[spring-dispatcher-name]-servlet.xml定义多个viewResolver:

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/jsp/"/>
    <property name="suffix" value=".jsp"/>
    </bean>

    <bean id=”beanNameViewResolver” class=”...BeanNameViewResolver”>
    <property name="order" value="1"></property>
    </bean>

    <bean id=”beanNameViewResolver” class=”...XmlViewResolver”>
    <property name="order" value="0"></property>
    </bean>

    DispatcherServlet会加载所有的viewResolver到一个list中,并按照优先级进行解析。注意order中的值越小,优先级越高。而id为viewResolver

    的viewResolver的优先级是最低的。

  • 相关阅读:
    java 单元测试 No tests were found 和 org.junit.platform.commons.JUnitException: TestEngine with ID 'junit-jupiter' failed to discover tests
    Cesium 各种坐标转换
    windows express + https ssl 证书申请
    layui数据表格跨行自动合并
    mui中的遍历each()
    点击按钮,回到页面顶部的5种写法
    html中a标签中实现点击事件
    @-webkit-keyframes 动画 css3
    在手机上调试H5页面
    SQL Server 按某一字段分组取最大(小)值所在行的数据
  • 原文地址:https://www.cnblogs.com/achengmu/p/9037178.html
Copyright © 2011-2022 走看看