Spring @ResponseBody 直接返回String乱码处理

 

@RequestMapping(value = "test", method = {
        RequestMethod.GET, RequestMethod.POST
    })
    @ResponseBody
    public String getMenuByParentId(Model model, String parentId) {
        List<Menu> list = menuService.getByParentId(Long.valueOf(parentId));
        StringBuffer sb = new StringBuffer();
        sb.append("中文");
        return sb.toString();
    }

 以上代码在请求时中文将会出现乱码,解决方法:

在Spring配置文件中加上以下代码。注意加在<mvc:annotation-driven />之前

<!-- Json返回 乱码处理 -->
    <bean
        class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
        <property name="messageConverters">
            <list>
                <bean
                    class="org.springframework.http.converter.ByteArrayHttpMessageConverter" />
                <bean
                    class="org.springframework.http.converter.StringHttpMessageConverter">
                    <property name="supportedMediaTypes">
                        <list>
                            <value>text/plain;charset=UTF-8</value>
                        </list>
                    </property>
                </bean>
                <bean
                    class="org.springframework.http.converter.ResourceHttpMessageConverter" />
                <bean
                    class="org.springframework.http.converter.xml.SourceHttpMessageConverter" />
                <bean
                    class="org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter" />
                <bean
                    class="org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter" />
            </list>
        </property>
    </bean>

 

posted on 2013-07-04 12:44  无知的山羊  阅读(2045)  评论(0编辑  收藏  举报

导航