spring @RespnoseBody 返回json类型的数据

换spring 4后,以前的json配置总是出问题
后来发现,spring 4必须要用新的配置
在spring配置文件中application.xml配置如下

<bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
    <property name="supportedMediaTypes">
        <list>
            <value>text/html;charset=UTF-8</value>
        </list>
    </property>
</bean>

而以前spring3 该配置为:

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
    <property name="messageConverters">
        <list>
            <ref bean="mappingJacksonHttpMessageConverter" />
        </list>
    </property>
</bean>

注意:class已经发生了变化,
spring 4使用的是org.springframework.http.converter.json.MappingJackson2HttpMessageConverter
spring 3使用的是org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter

如果使用的gradle,添加如下依赖

    // https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind
    compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.7.4'

    // https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core
    compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.7.4'

    // https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations
    compile group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: '2.7.4'

maven配置如下

<!-- Spring 升级4+ 依赖的JSON包 -->

<dependency>

 <groupId>com.fasterxml.jackson.core</groupId>

 <artifactId>jackson-databind</artifactId>

 <version>2.7.4</version>

</dependency>

<dependency>

 <groupId>com.fasterxml.jackson.core</groupId>

 <artifactId>jackson-core</artifactId>

 <version>2.7.4</version>

</dependency>

<dependency>

 <groupId>com.fasterxml.jackson.core</groupId>

 <artifactId>jackson-annotations</artifactId>

 <version>2.7.4</version>

</dependency>

Controller如下
加上@ResponseBody就可以返回json类型的数据

@Controller
@RequestMapping("index")
public class IindexController {
    @RequestMapping("")
    public String index() {

        return "reglog/login";
    }

    @RequestMapping(value = "sendSMS")
    @ResponseBody
    public Emp send(String phone) {
        Emp emp = new Emp();
        emp.setAge(21);
        emp.setCreateTime(new Date());
        emp.setName("你好");

        String code = SMSMessage.generateCode(6);
        SMSMessage.sendSmsCode(phone, code, "1");
        return emp;
    }
}

参考资料:
http://blog.csdn.net/caiwenfeng_for_23/article/details/43492973
http://www.sojson.com/blog/145.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容