Spring MVC 学习@RequestBody有关于xml配置等和ajax提交json报500错误情况的解决方法
云中君说:我又开始写博文了,我前两天没有发关于学习的博文,主要是被学习中@RequestBody注解的学习困扰住了。这时候就是发挥我们的极客精神了,因为博主没有关于学习这个Spring MVC的群体,所以很多问题都是在网上百度解决,前两天遇到的这个问题,差点让我吐血,两天都没解决,最后找到了我的院长大人,帮我解决了这个难题。看来学习这些东西有一个固定的交流平台还是有很多好处的。今天我把我遇到的我.
云中君说:
我又开始写博文了,我前两天没有发关于学习的博文,主要是被学习中@RequestBody注解的学习困扰住了。这时候就是发挥我们的极客精神了,因为博主没有关于学习这个Spring MVC的群体,所以很多问题都是在网上百度解决,前两天遇到的这个问题,差点让我吐血,两天都没解决,最后找到了我的院长大人,帮我解决了这个难题。看来学习这些东西有一个固定的交流平台还是有很多好处的。今天我把我遇到的我问题分享给大家,避免大家采坑。也方便自学的小伙伴们。
开始正文
使用@RequestBody注解前的必要配置
出现500问题表示服务器有问题,说明需要进行配置,否则就不需要了。
pom.xml文件中
<properties>
...
<jackjson.version>2.8.8</jackjson.version>
</properties>
<dependency>
...
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackjson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackjson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackjson.version}</version>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.32</version>
</dependency>
自定义springmvc.xml文件中添加
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="mappingJacksonHttpMessageConverter" />
</list>
</property>
</bean>
<bean id="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" >
<property name="supportedMediaTypes">
<list>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
如此就解决了500问题;
注意前提
博主的项目是运行在idea编辑器中maven环境下
@RequestBody使用
接收java文件
@RequestMapping(path = "/Demo3/pets",method = RequestMethod.POST,consumes = "application/json")
// @ResponseBody
public Pet test1(@RequestBody Pet pet){
System.out.println(pet.toString());
return pet;
}
Pet.java文件
package com.itcast.controller;
import com.fasterxml.jackson.annotation.JsonProperty;
public class Pet {
@JsonProperty(value="name")
private String name;
@JsonProperty(value="age")
private int age;
@Override
public String toString() {
return "Pet{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Pet() {
}
public Pet(String name, int age) {
this.name = name;
this.age = age;
}
}
前端代码
$().ready(function(){
var obj = JSON.stringify({'name':'zhansan','age':18});
alert(obj);
//后台使用对象的形式接受
$.ajax({
url: "Demo3/pets",
type: "post",
data: obj,
dataType:"json",
contentType: 'application/json;charset=utf-8',
success : function(data){
alert("haha");
},
error:function (e) {
console.log(e);
}
});
});
如此就可以了。因为使用了静态的外连接javascript文件jqury。所以需要在springmvc.xml添加
<!--静态资源解析,spring会用默认的servlet响应静态文件-->
<mvc:default-servlet-handler/>
啦啦啦!如果在自己测试的时候与到什么问题,就可以联系我:
QQ:987782650
我们一起讨论,一起学习进步!
nice!

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)