【问题标题】:How to pass an object from the View to the controller through .getJSON in Spring 3如何在 Spring 3 中通过 .getJSON 将对象从 View 传递到控制器
【发布时间】:2012-04-24 02:08:00
【问题描述】:

我有这个豆子:

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。

我做错了什么?

提前致谢!

【问题讨论】:

    标签: java jquery spring-mvc getjson


    【解决方案1】:

    如果你想使用@RequestBody,那么我认为json应该作为POST而不是GET发送。

    这将触发 Spring 的 MappingJacksonHttpMessageConverter(假设您的类路径中有 Jackson)。我不记得您是否需要在 ObjectMapper 中设置 RespuestaForm 类。首先,您可以尝试不使用它,看看它是否有效。它不是,那么您可以尝试在其设置器上使用 @JsonProperty 注释您的 RespuestaForm 对象,以便映射器知道 Json 对象的哪个字段转到您的类上的哪个设置器方法。

    【讨论】:

      猜你喜欢
      • 2016-05-28
      • 1970-01-01
      • 2015-11-11
      • 2013-12-13
      • 1970-01-01
      • 2012-04-22
      • 2017-01-08
      • 2016-07-21
      • 1970-01-01
      相关资源
      最近更新 更多