2012-04-23 43 views
0

我有這個bean:如何從通過.getJSON視圖控制器傳遞一個對象在春季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; 
} 

,但我可以」 t獲取RespuestaForm對象。

我在做什麼錯?

在此先感謝!

回答

2

如果你想使用@RequestBody,那麼我認爲json應該作爲POST發送而不是GET。

這將觸發Spring的MappingJacksonHttpMessageConverter(假設您的類路徑中有Jackson)。我不記得是否需要在ObjectMapper中設置RespuestaForm類。首先,你可以嘗試沒有,看看它是否有效。它不是,那麼你可以嘗試用@JsonProperty在其setter上註釋你的RespuestaForm對象,以便映射器知道Json對象的哪個字段會轉到你的類的setter方法。

+0

謝謝Luciano!我會嘗試你的建議! – Lucas 2012-04-23 18:28:03

相關問題