【Maven+SSM】补充:写一个返回json的请求

来源:互联网 发布:阿里云 和 aws 对比 编辑:程序博客网 时间:2024/06/05 22:40

前言:

App需求均是返回json。所以写一个demo。

正文:

一、添加Jar包:jackson-databind,jackson-core,jackson-annotations

Maven依赖:其中遇到一个大坑!jackson2.2.3与Spring版本4.3.3不兼容。改成2.7.0才兼容。

报了一个找不到方法的错误。我居然一直以为是某个jar包没导入。!!!

<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.7.0</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.7.0</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>2.7.0</version></dependency>

二、springmvc-servlet.xml中必须有基于注解驱动:

<!-- 加入注解驱动 --><mvc:annotation-driven></mvc:annotation-driven>

三、controller中使用@ResponseBody。

package controller;import java.util.List;import javax.annotation.Resource;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import model.Book;import service.IBookService;@Controllerpublic class JsonController {private static Logger log = LoggerFactory.getLogger(JsonController.class);@Resource  private IBookService iBookService;@RequestMapping(value="h.do")public @ResponseBody List<Book> viewBook() {List<Book> bl = iBookService.getBookByName("大明春色");log.debug("---------------------json-------------------");return bl;}}


Ps:此处我之前一直使用的中文的请求处理不能使用。如下。

produces="text/html;charset=UTF-8"


项目代码下载地址。


四、如果不使用ResponseBody如何使用?

使用ResponseEntity<>,Springmvc自带的工具返回。

@RequestMapping(value="i.do")public ResponseEntity<List<Book>> viewBook2(){List<Book> bl = iBookService.getBookByName("大明春色");log.debug("---------------------json2-------------------");return new ResponseEntity<List<Book>>(bl,HttpStatus.OK);}






阅读全文
0 0