2012-04-23 45 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

相关问题