別のクラスPerson
を含む次のクラスがありますCar
public class Person {
private String name
private Car car;
... getter and setters
}
public class Car {
private String manufacturer;
... getter and setters
}
Javascriptでは、次のことを行います。
person = new Object();
person.name = "Bob";
person.car = new Object();
car = person.car;
car.manufacturer = "Mercedes";
$.ajax({
url: 'someurl.com',
type: 'POST',
data: person,
dataType: 'json',
...
complete: function() {
...
}
});
自動バインド機能を使用すると、次のエラーが発生します。
関数:
public @ResponseBody Car validateCar( Car car, HttpServletRequest servletRequest){
...
}
エラー:
org.springframework.beans.InvalidPropertyException: Invalid property 'car[manufacturer]' of bean class [com.example.Person]: Property referenced in indexed property path 'car[manufacturer]' is neither an array nor a List nor a Map; returned value was []
マッピングを機能させるにはどうすればよいですか?
ところで:私のPOSTデータは次のようになります:
name: Bob
car[manufacturer]: Mercedes
JSONとして文字列化すると、次のようになります(テストしましたが、文字列化していません)
{"name":"Bob",
"car": {
"manufacturer":"Mercedes"
}
}