在进行spring mvc 框架进行json数据的时候非常苦恼,因为一直报415的错误。
百度之后解决的方法是:json数据解析的配置jar包
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.7.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-mapper-asl -->
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.7.3</version>
</dependency>
spring-servlet.xml 配置
<bean id="mappingJackson2HttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="mappingJackson2HttpMessageConverter" />
</list>
</property>
</bean>
java 代码
controller
package com.mvc.controller;
import com.alibaba.fastjson.JSONObject;
import com.mvc.model.base.Result;
import com.mvc.service.test.TestService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@RestController//ResponseBody+Controller注解(无法返回界面)
@RequestMapping("/test/")
public class TestController {
@Autowired
private TestService testService;
@PostMapping("test")
public Result<JSONObject> test(){
System.err.println("进入访问接口");
JSONObject res = new JSONObject();
res.put("name","boom");
res.put("title","coco");
res.put("time",System.currentTimeMillis());
Result<JSONObject> result = new Result<JSONObject>();
result.setModle(res);
return result;
}
}
Result包装类
package com.mvc.model.base;
/**
* 返回包装类
* @param <T>
*/
public class Result<T> {
private String mes;
private T modle;
private Integer status = 1;
public String getMes() {
return mes;
}
public void setMes(String mes) {
this.mes = mes;
}
public T getModle() {
return modle;
}
public void setModle(T modle) {
this.modle = modle;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
}
–关键–
最可靠的方式是官网
版本更迭有些方法被遗弃或删除所以新版本的spring需要在官网进行查阅文档
spring 配置文件常用头文件
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
</beans>