将 dataTable 以 JSON 格式 (ajax) 传递给 MVC 控制器 (JAVA)
Pass dataTable in JSON format (ajax), to a MVC Controller (JAVA)
我是 AJAX 的新人,我正在努力将对象传递给控制器。
我试过这个:
$(document).ready(function(){
$('#mov').click(function(){
var dni = parseInt($('#dni').val());
var table = $('#tablaSeleccionados').tableToJSON();
$.ajax({
type:'POST',
url:'${pageContext.request.contextPath}/saveMovBienes',
data: {dni:dni,table:table},
dataType: "json"
})
})
})
控制器
@PostMapping("/saveMovBienes")
public String saveMovBienes(@RequestParam(name="dni", required=false) Integer dni,
@RequestParam(name="table", required=false) String listado) {
System.out.println("PER_ID= "+dni);
System.out.println("LIST= "+ listado);
return "";
}
尝试将“listado”的格式更改为列表、Json、字符串,什么都没有...
如果我将“toString()”添加到我的 var table,我会看到控制器中的元素,但像这样:'object [Object]'、'object [Object]'
如有指导将不胜感激。
您可能希望在请求正文中将数据作为 JSON 发送,因为您正在创建 POST
请求:
$.ajax({
type: 'POST',
url: ...,
data: JSON.stringify({ dni: dni, table: table }),
dataType: "json",
contentType: 'application/json; charset=utf-8',
})
在后端,您可以有一个 @RestController
,它将接收数据传输对象 (DTO) 中用 @RequestBody
注释的数据。
首先,您必须为请求正文创建一个 DTO:
public class MyRequest {
private String dni;
private String table;
// Getters and setters
}
现在,您可以创建其余控制器:
@RestController
public class MyController {
@PostMapping("/saveMovBienes")
public String saveMovBienes(@RequestBody MyRequest request) {
System.out.println("PER_ID= " + request.getDni());
...
}
}
我是 AJAX 的新人,我正在努力将对象传递给控制器。
我试过这个:
$(document).ready(function(){
$('#mov').click(function(){
var dni = parseInt($('#dni').val());
var table = $('#tablaSeleccionados').tableToJSON();
$.ajax({
type:'POST',
url:'${pageContext.request.contextPath}/saveMovBienes',
data: {dni:dni,table:table},
dataType: "json"
})
})
})
控制器
@PostMapping("/saveMovBienes")
public String saveMovBienes(@RequestParam(name="dni", required=false) Integer dni,
@RequestParam(name="table", required=false) String listado) {
System.out.println("PER_ID= "+dni);
System.out.println("LIST= "+ listado);
return "";
}
尝试将“listado”的格式更改为列表、Json、字符串,什么都没有...
如果我将“toString()”添加到我的 var table,我会看到控制器中的元素,但像这样:'object [Object]'、'object [Object]'
如有指导将不胜感激。
您可能希望在请求正文中将数据作为 JSON 发送,因为您正在创建 POST
请求:
$.ajax({
type: 'POST',
url: ...,
data: JSON.stringify({ dni: dni, table: table }),
dataType: "json",
contentType: 'application/json; charset=utf-8',
})
在后端,您可以有一个 @RestController
,它将接收数据传输对象 (DTO) 中用 @RequestBody
注释的数据。
首先,您必须为请求正文创建一个 DTO:
public class MyRequest {
private String dni;
private String table;
// Getters and setters
}
现在,您可以创建其余控制器:
@RestController
public class MyController {
@PostMapping("/saveMovBienes")
public String saveMovBienes(@RequestBody MyRequest request) {
System.out.println("PER_ID= " + request.getDni());
...
}
}