SpringMVC 多视图解析器配置

SpringMVC模式可以通过如下配置来支持多视图解析:

 

在spring 中,常用的ViewResolver 有如下几种:

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

一、同一类型的页面(jsp)

1 WEB-INF/A/a.jsp  

2 WEB-INF/B/b.jsp  

配置了视图解析器:
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" >  
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>  
    <property name="contentType" value="text/html"/>  
    <property name="prefix" value="/WEB-INF/A/"/>  
    <property name="suffix" value=".jsp"/>  
    //意思是对A或B开头的视图名进行处理,比如返回的视图名为A/a 那么会交给viewNames为A*的那个解析器处理
    <property name="viewNames" value="A*"/>
    <property name="order" value="0"></property>
</bean>  
  
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" >  
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>  
    <property name="contentType" value="text/html"/>  
    <property name="prefix" value="/WEB-INF/B/"/>  
    <property name="suffix" value=".jsp"/>  
    //意思是对A或B开头的视图名进行处理,比如返回的视图名为B/b 那么会交给viewNames为B*的那个解析器处理
    <property name="viewNames" value="B*"/>
    <property name="order" value="1"></property>
</bean>

 

二、不同类型的页面


 <!-- html视图解析器 先配置freemarkerConfig,html是没有prefix前缀属性的-->
    <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">  
        <property name="templateLoaderPath">  
            <value>/WEB-INF/view/html</value>  
        </property>  
    </bean>  
     <bean id="htmlviewResolver"  
        class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">  
        <property name="suffix" value=".html" /> 
        <property name="order" value="0"></property> 
        <property name="contentType" value="text/html;charset=UTF-8"></property>         
    </bean>
    
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">   
        <property name="prefix" value="/WEB-INF/view/jsp/" />
        <property name="suffix" value=".jsp" />
        <property name="viewClass" value="org.springframework.web.servlet.view.InternalResourceView"/> <!-- 不能用jstl的那个 -->
        <property name="contentType" value="text/html;charset=UTF-8"/>
         <property name="order" value="0"></property>
    </bean>

    配置不同类型视图解析器的时候,InternalResourceViewResolver必须放在最后

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值