`
tq02ksu
  • 浏览: 51601 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spring mvc 3.0中打散 <mvc:annotation-config/> 实现定制的配置.

阅读更多
项目开始的时候图简单, 用的spring mvc的 mvc 命名空间, 只用一个
<mvc:annotation-config/> 就实现 了spring mvc 的大部分配置, 后来发现在json操作的时候, 如果返回类型为String, 则会出现乱码, 经过笔者查看源码, 发现这时候并不是jacksonMapperConverter在工作, 而是直接被 org.springframework.http.converter.StringHttpMessageConverter处理掉了.

好在这个类是支持定制字符集的.
经过笔者的返复尝试, 才把这个问题搞定.
具体配置是这样的.
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"
          p:order="1"/>
    
    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="messageConverters">
            <list>
                <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                    <property name="supportedMediaTypes">
                        <list>
                            <bean class="org.springframework.http.MediaType">
                                <constructor-arg value="text"/>
                                <constructor-arg value="plain"/>
                                <constructor-arg value="utf8"/>
                            </bean>
                        </list>
                    </property>
                </bean>
                <!-- 
                <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/>
                 -->
                <bean class="com.fpi.mespvc.web.util.NoCacheMappingJacksonHttpMessageConverter"/>
            </list>
        </property>
    </bean>

如上, 这样就可以实现UTF-8的编码.

同时笔者借此机会也建议spring mvc 的用户在项目初期最好不要用这个简化的配置. 这样定制性比较强. 也减少了后期改动时对已做好的功能的影响的风险.
分享到:
评论

相关推荐

    拦截器与冲突解决

    1. **配置顺序**:Spring MVC按照注册拦截器的顺序执行它们,如果`&lt;mvc:annotation-driven /&gt;`配置在拦截器之后,那么可能会导致拦截器无法正常工作,因为Spring可能已经处理了请求,而没有交给拦截器。 2. **命名...

    SpringMVC源码总结(三)mvc:annotation-driven和mvc:message-converters简单介绍

    在Spring MVC框架中,`mvc:annotation-driven`和`mvc:message-converters`是两个非常重要的元素,它们在处理基于注解的控制器和数据转换方面起着关键作用。本篇文章将深入探讨这两个组件的工作原理以及如何在实际...

    (代码)SpringMVC第12讲:<mvc:annotation-driven/>

    在Spring MVC框架中,`&lt;mvc:annotation-driven/&gt;`元素是一个非常关键的配置,它使得我们在控制器类中能够方便地使用注解来处理HTTP请求。本讲将深入探讨这一核心特性,了解它如何简化我们的开发流程,并提升应用程序...

    spring_MVC源码

    10. &lt;context:annotation-config /&gt; 11. &lt;!-- 把标记了@Controller注解的类转换为bean --&gt; 12. &lt;context:component-scan base-package="com.mvc.controller" /&gt; 13. &lt;!-- 启动Spring MVC的注解功能,...

    SpringMVC源码总结(二)mvc:mvc:annotation-driven背后的那些事

    在Spring MVC框架中,`mvc:annotation-driven`是Spring MVC配置中的一个重要元素,它使得我们的应用能够支持基于注解的控制器、数据绑定、格式化转换器和服务端验证等功能。这篇博客将深入探讨`mvc:annotation-...

    jakarta.annotation-api-1.3.5-API文档-中文版.zip

    赠送jar包:jakarta.annotation-api-1.3.5.jar; 赠送原API文档:jakarta.annotation-api-1.3.5-javadoc.jar; 赠送源代码:jakarta.annotation-api-1.3.5-sources.jar; 赠送Maven依赖信息文件:jakarta.annotation...

    springboot 基础简易实例, maven项目

    &lt;artifactId&gt;spring-boot-starter-parent&lt;/artifactId&gt; &lt;version&gt;2.1.4.RELEASE&lt;/version&gt; &lt;relativePath/&gt; &lt;!-- lookup parent from repository --&gt; &lt;/parent&gt; &lt;groupId&gt;com.example&lt;/groupId&gt; &lt;artifactId&gt;...

    Spring3.0 MVC配置教程

    &lt;mvc:annotation-driven /&gt; &lt;bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"&gt; &lt;property name="prefix" value="/WEB-INF/views/" /&gt; &lt;property name="suffix" value=".jsp...

    将dwr集成到spring mvc(dwr的配置是基于xml)

    &lt;bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/&gt; &lt;bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/&gt; &lt;/beans&gt;...

    SpringMVC中解决@ResponseBody注解返回中文乱码问题

    总的来说,解决SpringMVC中`@ResponseBody`注解返回中文乱码问题的关键在于正确配置`HttpMessageConverter`,确保其支持UTF-8编码,并将这些配置放在`&lt;mvc:annotation-driven&gt;`元素之前。通过上述方法,可以有效地...

    Spring3中配置DBCP,C3P0,Proxool,Bonecp数据源

    &lt;context:annotation-config /&gt; &lt;context:component-scan base-package="com.mvc" /&gt; &lt;mvc:annotation-driven /&gt; &lt;mvc:resources mapping="/resources/**" location="/resources/" /&gt; &lt;mvc:default-servlet-...

    jakarta.annotation-api-1.3.5-API文档-中英对照版.zip

    赠送jar包:jakarta.annotation-api-1.3.5.jar; 赠送原API文档:jakarta.annotation-api-1.3.5-javadoc.jar; 赠送源代码:jakarta.annotation-api-1.3.5-sources.jar; 赠送Maven依赖信息文件:jakarta.annotation...

    struts2.3+hibernate3.6+spring3.1整合的纯xml配置的小项目

    &lt;context:annotation-config&gt;&lt;/context:annotation-config&gt; &lt;context:component-scan base-package="org.whvcse"&gt;&lt;/context:component-scan&gt; &lt;tx:annotation-driven transaction-manager="txManager" /&gt; &lt;!-- ...

    java8+tomcat8+struts2.5+spring4.3+hibernate5.2框架搭建详细过程

    &lt;mvc:annotation-driven/&gt; &lt;bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"&gt; &lt;property name="prefix" value="/WEB-INF/views/"/&gt; &lt;property name="suffix" value=".jsp"/&gt; ...

    spring使用annotation整合dwr笔记

    - **配置DWR Annotation Config**:利用`&lt;dwr:annotation-config/&gt;`标签启用注解支持,使得开发者能够使用`@RemoteProxy`和`@RemoteMethod`等注解来标注需要暴露给客户端的方法。 ```xml &lt;!-- 配置DWR注解支持 --&gt;...

    spring组件扫描contextcomponent-scan使用详解.pdf

    使用&lt;context:component-scan/&gt;标签需要在 Spring 配置文件中添加以下代码: ```xml &lt;context:component-scan base-package="com.example"/&gt; ``` 其中,base-package 指定了要扫描的包名。 Spring 框架会自动检测该...

    spring3.0 mvc 注解实现helloworld输出

    在本文中,我们将深入探讨如何使用Spring 3.0 MVC框架通过注解方式实现一个简单的“Hello, World!”输出。Spring MVC是Spring框架的一部分,它为构建基于模型-视图-控制器(MVC)架构的Web应用程序提供了一个强大的...

    使用Maven构建Spring MVC项目的简单示例

    &lt;mvc:annotation-driven /&gt; &lt;bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"&gt; &lt;property name="prefix" value="/WEB-INF/views/" /&gt; &lt;property name="suffix" value=".jsp" ...

    spring注解出现中文乱码

    - **修正方式**:根据Spring 3.0的规范,`mvc:annotation-driven`元素可以采用空元素的形式,即`&lt;mvc:annotation-driven/&gt;`。如果需要添加自定义的配置,可以使用`mvc:annotation-driven`标签加上相应的子元素。题目...

Global site tag (gtag.js) - Google Analytics