如何在类对象中保存数据,使用jackson作为json页面从jsp页面发送到控制器?

时间:2014-06-19 12:50:44

标签: jquery json spring jsp

我正在尝试使用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不支持的媒体类型错误。 请帮忙。

2 个答案:

答案 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());

}