我正在尝试使用jquery ajax将json对象从jsp页面发送到spring框架中的控制器。我想获取jsonobject元素并使用jackson将其存储在类对象中。 这是我尝试过的: jsp页面:
function callme(){
var jsonDataObject = new Object();
jsonDataObject.name = "abc";
jsonDataObject.pwd = "123";
var jsonData = JSON.stringify(jsonDataObject);
$.ajax({
type:"get",
url:"/test",
async: false,
data:{jsonData:jsonData},
dataType:"json",
success:function(data){
}
控制器:
@RequestMapping (value = "/test", method = RequestMethod.GET)
@ResponseBody
public String test(@RequestBody User obj)
{
System.out.println("I am in user");
ResponseVO respVo = new ResponseVO();
System.out.println("User name is:"+obj.getName());
System.out.println("User password is:"+obj.getPwd());
}
我得到的是415不支持的媒体类型错误。 请帮忙。
答案 0 :(得分:0)
Spring Documentation表示如果你的pom.xml中有这种依赖关系并且你的spring上下文中有标记<mvc:annotation-driven>
,那么Spring MVC会自动为你的REST模板注册一个JSON转换器
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.3</version>
</dependency>
我希望你的应用程序中定义了一个REST模板。
答案 1 :(得分:0)
您必须指定控制器使用的数据类型:
@RequestMapping (value = "/test", method = RequestMethod.GET,consumes = "application/json)
@ResponseBody
public String test(@RequestBody User obj)
{
System.out.println("I am in user");
ResponseVO respVo = new ResponseVO();
System.out.println("User name is:"+obj.getName());
System.out.println("User password is:"+obj.getPwd());
}