0

JSON配列をSpring-MVCに渡すには?

JSON のオブジェクトの配列を Spring-MVC(Java) に渡す方法を見つけようとしています。

以下は、2 つの配列をセットアップして呼び出しを行う私の 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.service()Spring MVCディスパッチャサーブレットが例外org.springframework.beans.InvalidPropertyExceptionをスローしました:無効なプロパティ「教育」 []' の Bean クラス [com.raistudies.domain.User]: インデックス付きプロパティ パス 'education[]' で参照されているプロパティは、配列でもリストでもマップでもありません。戻り値は [[Ljava.lang.String;@6fef3212] でした

4

1 に答える 1

0

JSONの教育プロパティは配列のようですが、POJOでは文字列です

変えたら

private String education = null

private List<String> education = null

名前についても同じことを行う必要があります。

于 2012-05-31T19:27:13.000 に答える