[英]How to pass an object from the View to the controller through .getJSON in Spring 3
我有這個豆子:
public class RespuestaForm {
private List<RespuestaUsuario> respuesta;
private List<Pregunta> pregunta;
private Long pinId;
public RespuestaForm() {
}
public RespuestaForm(List<Pregunta> pregunta, Long pinId) {
this.pregunta = pregunta;
this.pinId = pinId;
}
public List<RespuestaUsuario> getRespuesta() {
return respuesta;
}
public void setRespuesta(List<RespuestaUsuario> respuesta) {
this.respuesta = respuesta;
}
public List<Pregunta> getPregunta() {
return pregunta;
}
public void setPregunta(List<Pregunta> pregunta) {
this.pregunta = pregunta;
}
public Long getPinId() {
return pinId;
}
public void setPinId(Long pinId) {
this.pinId = pinId;
}
}
我想從我的視圖中將RespuestaForm類型的對象傳遞給控制器,所以這就是我在jsp中所做的:
function verificarRespuestasAjax(pregunta, pinId, respuesta, index, array){
var respuestas ={ "pinId":pinId,
"respuesta": [
{"pinId": pinId, "respuesta": "prueba", "preguntaId": pregunta},
{"pinId": 3, "respuesta": "Hola", "preguntaId": pregunta}
]};
$.getJSON("../usuarios/comparar_respuestas_JSON", {respuestas: respuestas}, function(verifRespuestas){
if(verifRespuestas){
## etc...
});
}
這是控制器中的方法:
@RequestMapping(value="/usuarios/comparar_respuestas_JSON")
public @ResponseBody boolean compararRespuestas(@RequestBody RespuestaForm respuestas){
try{
//here I should get the object RespuestaForm
}catch(Exception e){
e.printStackTrace();
}
return false;
}
但我無法得到RespuestaForm對象。
我究竟做錯了什么?
提前致謝!
如果你想使用@RequestBody,那么我認為json應該作為POST而不是GET發送。
這將觸發Spring的MappingJacksonHttpMessageConverter(假設你的類路徑上有Jackson)。 我不記得你是否需要在ObjectMapper中設置RespuestaForm類。 首先,你可以嘗試沒有它,看它是否有效。 它沒有,那么您可以嘗試在其setter上使用@JsonProperty注釋RespuestaForm對象,以便映射器知道Json對象的哪個字段轉到類上的setter方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.