1. Responder a los datos JSON a través del marco SpringMVC
En el marco SpringMVC (incluido el marco SpringBoot), cuando el método para procesar la solicitud se agrega antes @ResponseBody
o antes de que se use la clase del controlador @RestController
, el valor de retorno del método para procesar la solicitud se utilizará como datos de respuesta para el cliente.
Cuando el servidor responde al cliente con datos, el marco SpringMVC utilizará el "Convertidor" para convertir el valor de retorno del método y los encabezados de respuesta al procesar la respuesta. Para diferentes tipos de valor de retorno, el marco SpringMVC También se utilizan automáticamente diferentes convertidores.
Cuando el (tipo de valor de retorno del método de procesamiento solicita) que el tipo de datos de respuesta String
, utilizará automáticamente StringHttpMessageConverter
el convertidor, la cadena del convertidor volverá automáticamente al cliente como datos de respuesta y, también en respuesta al primer conjunto, De forma predeterminada, la Content-Type
propiedad se establecerá en el encabezado de la respuesta y su valor es text/html; charset=ISO-8859-1
. Por lo tanto, en el marco SpringMVC ( excluyendo el marco SpringBoot), la respuesta String
no es compatible con el chino de forma predeterminada .
Cuando el tipo de datos de respuesta es un tipo que se no se reconoce por el marco SpringMVC por defecto , y el entorno de desarrollo actual añade una jackson-databind
dependencia, el marco SpringMVC será automáticamente usar jackson-databind
el convertidor en el proceso, y jackson-databind
el método de trabajo del convertidor es organizar los resultados de respuesta en formato JSON datos, y el encabezado de respuesta Content-Type
se convierte en application/json; charset=UTF-8
!
En el proyecto, solo necesita asegurarse de que
jackson-databind
se agreguen las dependencias, no se requiere configuración adicional y no es necesario usar explícitamente una determinada clase en el marco.Si se trata de un proyecto SpringMVC que usa XML para la configuración relacionada, debe habilitar el controlador de anotaciones en el archivo de configuración de Spring, es decir, agregar el archivo de configuración:
<annotation-driven />
En general, si necesita el marco SpringMVC para responder a los datos en formato JSON, necesita:
- Utilizar
@RestController
o@ResponseBody
comentar; - Agregue
jackson-databind
dependencias en el proyecto ; - Personalice el tipo de valor de retorno del método de procesamiento de solicitudes (siempre que sea un tipo personalizado, debe ser un tipo que el marco SpringMVC no reconozca de forma predeterminada)
Por supuesto, si se ha utilizado una @RestController
anotación en una determinada clase de controlador, significará que "todas las solicitudes procesadas en la clase de controlador actual responderán a los datos" y no se realizará ningún reenvío o redireccionamiento. Si debe realizar el reenvío O redirigir, puede:
- No utilice
@RestController
anotaciones, agregue@ResponseBody
anotaciones una por una antes de cada método que necesite responder a los datos ; - En
@RestController
el caso de uso , declare el tipo de valor de retorno del método que necesita ser reenviado o redirigido como unModelAndView
tipo.