gpt4 book ai didi

java - 如何在 Spring 3 中通过 .getJSON 将对象从 View 传递到 Controller

转载 作者:行者123 更新时间:2023-12-02 07:50:27 30 4
gpt4 key购买 nike

我有这个 bean :

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 类型的对象从我的 View 传递到 Controller ,所以这就是我在 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...
});
}

这是 Controller 中的方法:

@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 类。首先你可以尝试不使用它,看看它是否有效。事实并非如此,那么您可以尝试在 RespuestaForm 对象的 setter 上使用 @JsonProperty 进行注释,以便映射器知道 Json 对象的哪个字段转到您的类上的哪个 setter 方法。

关于java - 如何在 Spring 3 中通过 .getJSON 将对象从 View 传递到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10285507/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com