读书人

spring mvc 3.0中打散 lt;mvc:annotatio

发布时间: 2012-09-02 21:00:34 作者: rapoo

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 的用户在项目初期最好不要用这个简化的配置. 这样定制性比较强. 也减少了后期改动时对已做好的功能的影响的风险.

读书人网 >VC/MFC

热点推荐