5

我将 JSON 中的几个“字段”和“列表”发送到 Spring MVC 控制器,如下所示:

    var data = {
        'message' : 'Text data',
        '**listOfIds**' : '350234983, 378350950',

        'synchronizerToken' : formTokenId

};

$.ajax({
        url : 'testURL.do',
        type : 'post',
        data : data,
        cache : false,
        dataType : 'json',

        success : function (jsonResponse) {},

        error : function (error) {}
});

在 Spring MVC 控制器中,URL 处理程序如下所示:

    @RequestMapping(value = "/testURL.do", method = RequestMethod.POST)
public ModelAndView executeTest( ListData listData) {
        ModelAndView    modelAndView    = null;
        JsonResponse    jsonResponse    = null;

        modelAndView    = executeTransaction(listData);
        } 

        return modelAndView;
    }


ListData.java

public class ListData{
    private String          message;
    private List<String>    **listOfIds** = new ArrayList<String>();   

//getter/setters

问题是listOfIds没有作为列表返回。它以单个字符串'350234983, 378350950' 的形式返回

任何人都可以建议这里是否有任何问题,或者有没有更好的方法来接收 JSON 响应中的列表?

谢谢,-方达

4

2 回答 2

7

使 listOfIds 成为字符串数组而不是单个字符串。

'listOfIds' : ['350234983', '378350950'],
于 2013-02-26T21:02:40.610 回答
0

1.)

Add gson jar 

import com.google.gson.Gson;//import

Gson gson = new Gson();//create instance

gson.toJson(ListData);//convert it to json

2.)

定义下面的 bean 从控制器返回 jsonView。

<bean name="jsonView" class="org.springframework.web.servlet.view.json.JsonView"/>

控制器

import org.springframework.ui.ModelMap;

@RequestMapping(value = "/testURL.do", method = RequestMethod.POST)
public String executeTest(ModelMap model, ListData listData) {
    ModelAndView    modelAndView    = null;
    JsonResponse    jsonResponse    = null;
    modelAndView    = executeTransaction(listData);
    model.addAttribute("paramName", modelAndView);
    } 

    return "jsonView";
}

ajax的变化

$.ajax({
    url : 'testURL.do',
    type : 'post',
    data : data,
    cache : false,
    dataType : 'json',

    success : function (jsonResponse) {
       var jsonValue = $.parseJSON(jsonResponse.paramName);
    },

    error : function (error) {}
});

mvc-servlet.xml 中的viewsResolver 配置

<bean class="org.springframework.web.servlet.view.XmlViewResolver">
   <property name="location">
       <value>/path/views.xml</value>
   </property>
</bean>
于 2013-02-27T10:12:17.923 回答