转换的json使用jquery POJO /春/杰克逊
问题描述:
$.ajax({
cache:false,
type: 'POST',
url: "${saveDTO}",
data: mySubmitData, //a stringified json object, a form converted using toObject plugin
contentType: "application/json",
success: function(data) {
savedDialog.html(JSON.stringify(data) + "<br><br>"+mySubmitData);
}
});
和控制器是:转换的json使用jquery POJO /春/杰克逊
public @ResponseBody MyDTO saveDTO(@Valid final MyDTO myDTO,BindingResult result, Model model){
System.out.println(myDTO.getMyField + " " + myDTO.getSecondField;
return new MyDTO();
}
输出我在对话框中显示得到这样的:
{"myField":null,"secondField":null} //new empty dto converted and returned spring
{"myField":"RU","secondField":"13-02-12"} //submitted data, a form converted to json
虽然我SYS出去控制台输出显示这两个字段都是空的,JSON没有约束!为什么? DTO本身只有两个私人领域与适当的获取/设置器
答
//js
var mySubmitData ='{"myField":"myFieldValue", "secondField":"secondFieldValue"}';
//dto
public class MyDTO implements Serializable {
private String myField;
private String secondField;
MyDTO() {} //important
public void setMyField() { ...}
public void setSecondField() { ... }
}
//web resource
public @ResponseBody MyDTO saveDTO(@Valid final MyDTO myDTO,BindingResult result, Model model){
System.out.println(myDTO.getMyField + " " + myDTO.getSecondField;
return myDTO;
//return new MyDTO(); //it's empy object if you don't have default values
}
+0
好的尝试,你有点错过了关键点。 myDTO字段为空,则sys out print命令将删除null。我正在重新调整一个新对象来检查正确的映射。我认为问题出在我的串行器/解串器中 – NimChimpsky 2012-02-29 14:39:17
添加“MyDTO”的代码 – beerbajay 2012-02-29 12:00:33