簡體   English   中英

如何在Spring 3中通過.getJSON將對象從View傳遞給控制器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM