多视图解析器的配置


 

问题:

  视图解析器指的是Controler处理完请求,返回给系统的View名。那这个执行流程和具体配置怎么来玩呢?还有多视图配置等等


定义:

  视图解析器:      视图解析器通过名字来解析视图,springmvc内置的视图识别,然后跳转到相应的页面进行友好展示。

 

  常用的视图解析器:

    

    (我是通过源码查看的视图解析器,比这些要全面:)

    

具体怎么实现可以追一下源码


 

多视图解析器的配置:

    先引入我的配置文件信息:

    

<!--===============通用视图解析器 begin===============-->
<!--视图解析器一    处理jsp -->
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!--注入的任何bean的id保证唯一 -->
        <property name="prefix" value="/WEB-INF/view/" /> <!-- 默认的前缀-->
        <property name="suffix" value=".jsp" /><!-- 后缀-->
        <property name="viewClass"><!-- 这个玩意可以不指定,他就会默认使用默认的视图解析类,默认解析.jsp后缀-->
            <value>org.springframework.web.servlet.view.InternalResourceView
            </value>
        </property>
        <property name="order" value="1" /><!--多试图解析器的必须写的参数   也是视图解析器的优先等级。值越小 越优先执行-->
    </bean>

    
    <!--视图解析器一    处理freeMarker -->
    <!-- 配置freeMarker视图解析器 -->
    <bean id="viewResolverFtl"
        class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
        <property name="viewClass" value="com.huhy.freemarker.extend.FreeMarkerViewExtend" />
        <!-- 把Freemarker 扩展一下,把相关属性加入进去。。。 -->
        <property name="contentType" value="text/html; charset=utf-8" />
        <property name="cache" value="true" />
        <property name="suffix" value=".ftl" />
        <property name="order" value="0" />  <!--多试图解析器的必须写的参数   也是视图解析器的优先等级。值越小 越优先执行-->
    </bean>
    
    <!-- 配置freeMarker 配置-->
    <bean id="freemarkerConfig"
        class="com.huhy.freemarker.extend.FreeMarkerConfigExtend">
        <property name="templateLoaderPath">
            <value>/WEB-INF/ftl/</value>  <!--也可以把value标签去了-->
        </property>
        <property name="freemarkerVariables">
            <map>
                <entry key="xml_escape" value-ref="fmXmlEscape" />
                <entry key="api" value-ref="api"/>
            </map>
        </property>
        <property name="defaultEncoding">
            <value>utf-8</value>
        </property>
        <property name="freemarkerSettings">
            <props>
                    <prop key="defaultEncoding">UTF-8</prop>
                    <prop key="url_escaping_charset">UTF-8</prop>
                    <prop key="locale">zh_CN</prop>
                    <prop key="boolean_format">true,false</prop>
                    <prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>
                    <prop key="date_format">yyyy-MM-dd</prop>
                    <prop key="time_format">HH:mm:ss</prop>
                <prop key="number_format">#</prop>
                <prop key="whitespace_stripping">true</prop>
            </props>
        </property>
    </bean>
    <!--===============通用视图解析器 end===============-->

模拟两个请求:

  /user/a

  /person/b

  先默认在ftl找,再到jsp中查询  最后没有返回404错误页面    具体代码不贴了

 

 

posted @ 2017-12-07 11:29  陽66  阅读(309)  评论(0编辑  收藏  举报