使用jackson的Spring mvc解析对象?

时间:2013-04-12 07:43:28

标签: java spring jquery spring-mvc jackson

我的豆类,

import java.util.LinkedList;

public class Information {

    private LinkedList<String> information ;

    public LinkedList<String> getInformation() {
        return information;
    }

    public void setInformation(LinkedList<String> information) {
        this.information = information;
        System.out.println("List is : "+information);
    }


}

我的控制器,

@RequestMapping(value="/registerDn.html",method=RequestMethod.POST)
public @ResponseBody Information registerDn( @RequestParam(value = "dn", required = false) String dn,
        @RequestParam(value = "acd", required = false) String acd ){
    System.out.println("DN is : "+dn+   "    acd : "+acd);
    WebApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(context);
    UserOperation oper = (UserOperation)ctx.getBean("operation");
    oper.registerDn(dn);

    Information info = (Information) ctx.getBean("info");
    return info;
}

我的jquery将是,

function registerDn(){

    $.ajax({  
        type: "POST",  
        url: contexPath + "/registerDn.html",
        data: "dn=" + dn + "&acd=" + acd,  
        success: function(response){

            var userInfo = "<ol>";

            for( i =0 ; i < response.information.length ; i++){
                userInfo += "<br><li><b>Name</b> : " + response.information[i] ;
            }

            userInfo += "</ol>";

            //Used to display the list
            $('#getlist').html(dn + " is : " + userInfo); 

        },  
        error: function(e){  
            alert('Error: ' + e);  
        }, 

    }); 

} 

我在jquery-ajax中获得了成功。但是不知道如何解析它并在视图中显示它。

或者当我点击按钮时如何使用jquery-ajax获取bean类中的列表。

肯定赞赏好的答案。

1 个答案:

答案 0 :(得分:0)

示例代码中没有任何内容表明响应应该是/应该是JSON对象。

  1. Jackson jars必须在类路径上,以便在应用程序的上下文中配置MappingJackson HttpMessageConverter
  2. jQuery ajax config应将dataType定义为json或使用produces注释的@RequestMapping属性并将值设置为application/json
  3. 基本上,如果Spring知道响应内容类型应该是json,它将使用Jackson Mapping Converter将你的pojo转换为JSON,然后你的jQuery成功回调将获得一个JSON对象。

    你应该看到FireBug究竟发生了什么。