Responder a datos JSON a través del marco SpringMVC

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 @ResponseBodyo 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 StringHttpMessageConverterel 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-Typepropiedad 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 Stringno 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-databinddependencia, el marco SpringMVC será automáticamente usar jackson-databindel convertidor en el proceso, y jackson-databindel método de trabajo del convertidor es organizar los resultados de respuesta en formato JSON datos, y el encabezado de respuesta Content-Typese convierte en application/json; charset=UTF-8!

En el proyecto, solo necesita asegurarse de que jackson-databindse 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 @RestControllero @ResponseBodycomentar;
  • Agregue jackson-databinddependencias 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 @RestControlleranotació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 @RestControlleranotaciones, agregue @ResponseBodyanotaciones una por una antes de cada método que necesite responder a los datos ;
  • En @RestControllerel caso de uso , declare el tipo de valor de retorno del método que necesita ser reenviado o redirigido como un ModelAndViewtipo.

Supongo que te gusta

Origin blog.csdn.net/qq_44273429/article/details/107414516
Recomendado
Clasificación