requestmapping puede para método mvc formulario escritura encontrar ejemplo dispatcherservlet commandname atributo java spring spring-mvc model-view-controller annotations

java - puede - ¿Cuáles son los tipos de retorno válidos de un método de controlador Spring MVC?



spring mvc formulario ejemplo (3)

No tengo mucha experiencia en Spring MVC y tengo lo siguiente sobre cuáles son los tipos de devolución válidos que puede devolver un método de controlador .

Así que sé que el usuario genera un HttpRequest recibido y manejado por el DispatcherServlet que envía esta solicitud a una clase de controlador específica.

Una clase de controlador es algo como esto:

@Controller public class AccountController { @RequestMapping("/showAccount") public String show(@RequestParam("entityId") long id, Model model) { ... } ....................................... ....................................... ....................................... }

Entonces, sé que cada método maneja una solicitud específica y que la solicitud manejada está especificada por la anotación @RequestMapping .

También sé que el método devuelve un objeto String que es el nombre de la vista lógica (que luego es resuelto por el que resuelve la vista para renderizar la vista)

Entonces, en esta etapa, creo que un método de una clase de controlador solo devuelve el objeto String . Pero no estoy seguro de ello. Tal vez un método como este puede devolver también algún tipo diferente de objetos?


Hay muchos tipos de devolución disponibles para el método Handler que se anota mediante @RequestMapping dentro del controlador, como:

  • ModelAndView (Clase)

  • Modelo (Interfaz)

  • Mapa
  • Cuerda
  • vacío
  • Ver
  • HttpEntity<?> O ResponseEntity<?>
  • HttpHeaders

y mucho mas ..... ver docs

Cada tipo de devolución tiene su uso específico, por ejemplo: si está utilizando Cadena, significa que se debe devolver el Nombre de vista y este nombre de vista se resolverá con ViewResolver . Si no desea devolver ningún nombre de vista, mencione el tipo de devolución como void . Si desea establecer el nombre de la vista y también desea enviar algunos datos para ver, utilice ModelAndView como un tipo de retorno.

Consulte la documentación para saber qué tipo de argumento de método puede pasar en el método del controlador.


Tienes una respuesta directa en el docs.spring.io/spring/docs/current/spring-framework-reference/…

Tome una nota especial de la

Si el método se anota con @ResponseBody, el tipo de retorno se escribe en el cuerpo HTTP de la respuesta. El valor de retorno se convertirá al tipo de argumento de método declarado utilizando HttpMessageConverters.

Cuando el método está anónimo con @ResponseBody , el tipo de retorno puede ser cualquier tipo personalizado, cualquier pojo de Java, que el marco convertirá a un JSON de representación adecuado, XML o similar y volverá a escribir en el cuerpo de respuesta