Springmvc同一资源不同描述配置-contentnegotiatingviewresolver



<!--设置加载外在化应用参数  -->
    <context:property-placeholder location="classpath:conf/*.properties" />
    <!-- 设置使用注解的类所在的jar包 -->
    <!-- 开启controller注解支持 -->
    <!-- 注:如果base-package=com.stone.web 则注解事务不起作用-->
    <context:component-scan base-package="com.stone.web.controller">
        <context:exclude-filter type ="annotation" expression= "org.springframework.stereotype.Service" />
    </context:component-scan>
    <mvc:annotation-driven />
    <mvc:interceptors>  
        <!-- 使用bean定义一个Interceptor,直接定义在mvc:interceptors根下面的Interceptor将拦截所有的请求 -->  
        <bean class="com.stone.web.interceptor.ApplicationInterceptor"/>  
        <!--<mvc:interceptor>  
            <mvc:mapping path="/test/number.do"/>  
             定义在mvc:interceptor下面的表示是对特定的请求才进行拦截的   
            <bean class="com.host.app.web.interceptor.LoginInterceptor"/>  
        </mvc:interceptor>  -->
    </mvc:interceptors> 
    <!-- 完成请求和注解POJO的映射,需要把bean部分加入到<context:component-scan base-package="*"/>前面 -->
    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" >
        <property name="messageConverters">
            <list><!-- 默认的编码是 iso-8859-1,修改为:UTF-8 -->
                <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                    <property name="supportedMediaTypes">
                        <list>
                            <value>text/html;charset=UTF-8</value>
                        </list>
                    </property>
                </bean>
            </list>
        </property>
    </bean>




    <!-- 视图解析器 begin -->
    <!-- 静态资源处理 -->
    <mvc:resources location="/assets/" mapping="/assets/**" />
    <mvc:default-servlet-handler/>
    <!-- 多媒体解析器  这里申明的id必须为multipartResolver  下载上传文件必须-->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />
    <!-- 对转向页面的路径解析。prefix:前缀, suffix:后缀 -->
    <!--<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="" p:suffix="" />-->
    <!-- 设置freeMarker的配置信息 -->
    <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
        <property name="templateLoaderPath">
            <value>/runtime/</value>
        </property>
        <property name="freemarkerSettings"><!--设置一些常用的全局变量-->
            <props>
                <prop key="template_update_delay">0</prop>
                <prop key="locale">zh_CN</prop>
                <prop key="default_encoding">UTF-8</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">0.##########</prop>
                <prop key="classic_compatible">true</prop>
                <prop key="template_exception_handler">ignore</prop>
            </props>
        </property>
    </bean>
    <bean id="cnManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">  
        <!-- 1、开启默认匹配,如果所有的mediaType都没匹配上,就会使用defaultContentType -->
        <property name="defaultContentType" value="text/html"/>  
        <!-- 2、支持accept-header匹配,这里是否忽略掉accept header,默认就是false -->
        <property name="ignoreAcceptHeader" value="true"/> 
        <!-- 3、支持后缀匹配 --> 
        <property name="favorPathExtension" value="true"/>  
        <!-- 4、支持参数匹配 --> 
        <property name="favorParameter" value="false"/>  
        <!-- 预设key对应后缀名及参数format的值, 与匹配策略3,4相关 -->
        <property name="mediaTypes">  
            <map>  
                <entry key="xml" value="application/xml"/>  
                <entry key="json" value="text/plain"/> 
            </map>  
        </property>  
    </bean> 
    <!-- ContentNegotiatingViewResolver视图解析器,利用他就可以配置多种返回值 -->
    <bean id="viewResolver" class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">   
        <property name="contentNegotiationManager" ref="cnManager"/> 
        <!--<property name="order" value="0"/>-->  
        <property name="viewResolvers">
            <list>  
                
                <!-- 针对freemarker的视图配置 -->   
                <bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">  
                    <property name="viewClass" value="org.springframework.web.servlet.view.freemarker.FreeMarkerView"/>  
                    <!--<property name="viewNames" value=".ftl"/>--> 
                    <property name="contentType" value="text/html; charset=utf-8"/> 
                    <property name="exposeSpringMacroHelpers" value="true" />
                    <property name="exposeRequestAttributes" value="true" />
                    <property name="exposeSessionAttributes" value="true" />
                    <property name="requestContextAttribute" value="rc" />
                    <property name="cache" value="false" />  
                    <property name="prefix" value="" />  
                    <property name="suffix" value=".ftl" />  
                </bean>  
                <bean id="irvr1" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
                    <property name="viewNames" value="*.jsp,*.html" />
                    <property name="viewClass" value="org.springframework.web.servlet.view.InternalResourceView" />
                    <property name="prefix" value="/runtime/"></property> 
                    <property name="suffix" value=""></property> 
                </bean> 
            </list>  
        </property>  
        <!-- 默认使用MappingJacksonJsonView生成jsonview-->
        <property name="defaultViews">    
            <list>
                <bean  class="org.springframework.web.servlet.view.json.MappingJackson2JsonView">        
                    <property  name="extractValueFromSingleKeyModel" value="true" />     
                    <property name="prettyPrint" value="true"/>  
                    <property name="contentType" value="text/plain"/>  
                </bean>        
                <bean  class="org.springframework.web.servlet.view.xml.MarshallingView">      
                    <property name="marshaller">        
                        <bean  class="org.springframework.oxm.xstream.XStreamMarshaller" />        
                    </property>      
                </bean>       
            </list>     
        </property>  
    </bean>




    <!-- /视图解析器 end -->


    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="messageConverters">
            <list>
                <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                    <property name="supportedMediaTypes">
                        <list>
                            <value>text/html;charset=UTF-8</value>
                            <value>text/plain;charset=UTF-8</value>
                        </list>
                    </property>
                </bean>
                <!--json-->
                <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                    <property name="supportedMediaTypes">
                        <list>
                            <value>apolication/json; charset=UTF-8</value>
                            <value>text/html;charset=UTF-8</value>
                        </list>
                    </property>
                </bean>
            </list>
        </property>
    </bean>






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值