0

如何将 JSON 数组传递给 Spring-MVC?

我正在尝试找到一种方法将 JSON 中的对象数组传递给 Spring-MVC(Java)..

下面是我的 javascript 设置两个数组并进行调用:

function doAjaxPost() {  

      var inData = {};

      inData.name = ['kurt','johnathan'];
      inData.education = ['GSM','HardKnocks'];

      htmlStr = JSON.stringify(inData);
      alert(htmlStr);

      $.post( contexPath + "/AddUser.htm", inData, function(outData, outStatus){
          alert(outStatus);

      });
};

这是我的 Java (Spring-MVC) 控制器:

@RequestMapping(value="/AddUser.htm",method=RequestMethod.POST)
    public @ResponseBody JsonResponse addUser(@ModelAttribute(value="user") User user, BindingResult result ){
        JsonResponse res = new JsonResponse();
        ValidationUtils.rejectIfEmpty(result, "name", "Name can not be empty.");
        ValidationUtils.rejectIfEmpty(result, "education", "Educatioan not be empty");
        if(!result.hasErrors()){
            userList.add(user);
            res.setStatus("SUCCESS");
            res.setResult(userList);
        }else{
            res.setStatus("FAIL");
            res.setResult(result.getAllErrors());
        }

        return res;
    }

这是我正在使用的 bean:

public class User {

    private String name = null;
    private String education = null;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getEducation() {
        return education;
    }
    public void setEducation(String education) {
        this.education = education;
    }

}

请让我知道正确的方法是什么让这个工作......这是我得到的错误......严重:servlet Spring MVC Dispatcher Servlet 的 Servlet.service() 抛出异常 org.springframework.beans.InvalidPropertyException: Invalid property 'education bean 类 [com.raistudies.domain.User] 的 []':在索引属性路径“education[]”中引用的属性既不是数组也不是 List 也不是 Map;返回值为 [[Ljava.lang.String;@6fef3212]

4

1 回答 1

0

似乎您的 JSON 中的 Education 属性是一个数组,但在您的 POJO 中它是一个字符串

如果你改变

private String education = null

private List<String> education = null

它应该可以工作,您还必须为名称做同样的事情。

于 2012-05-31T19:27:13.000 回答