[英]How to send json to mvc controller?
我需要向MVC Controller发送一个JSON字符串,该字符串返回一个ModelAndView对象,但我不知道如何在不使用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;
}
希望你能听懂我的英语!
您可以尝试此操作,在pom.xml中添加依赖项:
<!-- Need this for json to/from object -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.6.3</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.6.3</version>
</dependency>
那么您可以发送任何JSON对象,它们将被自动转换为Java对象,只要确保Java类变量与JSON对象的字段具有相同的名称即可(如果这是您的JSON对象)。
{field1: "value1", field2: "value2"}
那么你应该使java类,
public class Test{ String field1, field2;}
并收到它们,
@RequestMapping(value="/someMethod", method=RequestMethod.POST)
public ModelAndView someMethod(@RequestBody Test test) {
//your code
}
希望这会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.