【发布时间】:2016-09-07 22:44:12
【问题描述】:
我需要向返回 ModelAndView 对象的 MVC 控制器发送 JSON 字符串,但我不知道如何在没有 AJAX 的情况下发送 json,如果我使用 AJAX 发送 json,ModelAndView 不会重定向我。
我的解决方案之一是通过 URL 参数发送 json,但我不喜欢在浏览器中看到所有 JSON。
这是我的 JS 代码:
$('#btnDetalleActivo')
.on('click',function() {
var data = $('#tablaActivo').bootstrapTable('getSelections')[0].dto;
if (!$.isEmptyObject(data)) {
$(location)
.attr({'href' : "/AT/DetalleActivo",
data : data});
} else {
swal.info("Debe seleccionar un activo")
}
});
这是控制器的代码:
@RequestMapping(value = { "DetalleActivo" }, method = { RequestMethod.GET })
public ModelAndView getDetalleActivo(@RequestParam Activo activo, HttpServletRequest request) {
ModelAndView modelAndView = null;
ParamProcedureConsultaBean paramProcedureConsulta = new ParamProcedureConsultaBean();
DetalleActivoWrapper wrapperDetalleActivo;
paramProcedureConsulta.setPivIFGD(activo.getIFGD());
paramProcedureConsulta.setPivTABLA("F01");
paramProcedureConsulta.setPivPERIODO(activo.getFECHAREPORTING());
paramProcedureConsulta.setPivIdMovimiento(activo.getIDMOVIMIENTO());
paramProcedureConsulta.setPivENTIDAD(activo.getENTIDADINM());
paramProcedureConsulta.setPivMACRO(activo.getMCRO());
paramProcedureConsulta.setPivDEPENDENCIA(activo.getDCIA());
paramProcedureConsulta.setPivCUENTA(activo.getNCTA());
paramProcedureConsulta.setPivIdPARTIC(activo.getNNIF());
DetalleActivoBean detalleActivoBean = detalleActivoService.getDetalleActivo(paramProcedureConsulta);
if (detalleActivoBean.getRespuesta().getCODRETORNO() == 0) {
wrapperDetalleActivo = new DetalleActivoWrapper(detalleActivoBean.getResultado().getDetalleActivo());
modelAndView = new ModelAndView("ArbolApp/Activos/DetalleActivos", "detalleActivo", wrapperDetalleActivo);
} else {
modelAndView = new ModelAndView("ArbolApp/ArbolIndex", "mensajeError",
detalleActivoBean.getRespuesta().getMSGERROR());
}
return modelAndView;
}
希望你能听懂我的英语!
【问题讨论】:
-
使用 jquery.get 链接:api.jquery.com/jquery.get
-
首先您需要发送 json 并在代码注释中我看到 ajax 请求类型为“POST”,而您的控制器装饰有 GET,尝试将 method = { RequestMethod.GET }) 更改为 POST 并取消注释 ajax打电话
-
我不能使用 Ajax 进行调用,因为 Spring MVC 不会将我重定向到视图,我在问题中告诉它。我需要通过另一种方式拨打电话,例如 href。
标签: javascript java json ajax spring-mvc