Red de conocimiento informático - Aprendizaje de programación - ¿Cómo modifica Yi Rui el tipo de contenido de la tabla de datos?

¿Cómo modifica Yi Rui el tipo de contenido de la tabla de datos?

Cuando Spring MVC recibe la colección de parámetros de solicitud, debe agregar @RequestBody antes de la colección de parámetros en el método del Controlador. El enctype predeterminado (codificación MIME) recibido por @RequestBody es application/json, por lo que debe configurar el encabezado de la solicitud. de lo contrario, Spring MVC no los convertirá automáticamente en datos JSON al analizar los parámetros de la solicitud de colección y luego los analizará en la colección correspondiente.

Código JS:

[javascript] Ver texto sin formato

var userList = new Array();

userList.push({ nombre: "LiSi", pwd: "123"});

userList.push({nombre: "ZhangSan", pwd: "332"}); ({

tipo: "POST",

url: "/catalog/saveUsers",

datos: JSON.stringify(userList), //Serializar el objeto en una cadena JSON

dataType: "json",

contentType: 'application/json;charset=utf-8', //Establecer información del encabezado de solicitud

éxito.función(datos){

...

},

error: función(res){

.

}

});

Código Java:

[java] Copia pura de la vista

@ Controlador

lt; pre name="code" class="java"gt;@RequestMapping("/catalog.do")

Clase pública CatalogController {

@RequestMapping(params = "fn=saveUsers")

@ResponseBody

public AjaxJson saveUsers(@RequestBody List lt; Usergt; userList) {

..

}

}

....

}

}

Si desea recibir una matriz de matrices de Usuario[], simplemente cambie el tipo de parámetro de saveUsers a @RequestBody User[] userArray.

Usar $.ajax() está totalmente bien, pero ¿cómo cambio el tipo de contenido del datagrid en EasyUI?

Al buscar la api, no pude encontrar la propiedad a configurar, así que busqué el código fuente de easyUI y encontré el código fuente del cargador:

[javascript ] Ver texto puro

cargador: function(_629, _62a, _62b) {

var opts = $(this).datagrid("options");

if( !opts.url) {

return false;

}

$.ajax({

tipo: opts. método,

url: opts.url,

datos: _629,

tipo de datos: "json",

tipo de contenido: opts. contentType?opts .contentType: "text/html",

éxito: función(datos) {

_62a(datos)

},

error: función() {

_62b.apply(esto, argumentos

}

}); >}

Aquí vemos que el cargador no proporciona una opción para cambiar el tipo de contenido, por lo que necesitamos escribir nuestro propio cargador. El código JS es el siguiente:

[javascript] Ver texto sin formato

$("#grid").datagrid({

loader: function(param , éxito, error) {

$.ajax({

tipo: opts.method,

url: opts.url,

dataType: 'json',

contentType: 'application/json;charset=utf-8', // establecer encabezados de solicitud

datos: JSON.stringify(param),

éxito: función(resultado) {

éxito(datos);

}

}); }

});

Bien, ahora en el envío.