Spring-MVC con anotaciones
En este tema, leerá acerca de las anotaciones principalmente relacionadas con Spring MVC. Algunas de las anotaciones relacionadas son las siguientes: @Controller
, @RequestMapping
, @RequestParam
, @RequestBody
, @ResponseBody
, @RestController
, @ModelAttribute
, @ControllerAdvice
, @ExceptionHandler
, @ResponseStatus
.
Por supuesto, hay más anotaciones que también son extremadamente importantes pero que no pertenecen directamente a Spring MVC. Tales como: @Required
, @Autowired
, @Resource
y muchos más.
Parámetros
Anotación | Explicación |
---|---|
@Controlador |
Con la anotación @Controller , marca una clase Java como una clase que contiene controladores HTTP, en otras palabras, puntos de acceso HTTP a su aplicación. |
@RequestMapping |
La anotación @RequestMapping es la que usará para marcar los controladores HTTP (puntos de acceso HTTP a su aplicación) dentro de su clase @Controller |
@RequestParam |
Utilice la anotación @RequestParam para vincular los parámetros de solicitud a un parámetro de método en su controlador. |
distribuidor-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
<mvc:annotation-driven/>
<context:component-scan base-package="your.base.package.to.scan" />
</beans>
Con estas dos líneas de configuración, habilitará el uso de anotaciones MVC.
@RequestParam
@Controller
public class EditPetForm {
@RequestMapping("/pets")
public String setupForm(@RequestParam("petId") int petId, ModelMap model) {
Pet pet = this.clinic.loadPet(petId);
model.addAttribute("pet", pet);
return "petForm";
}
}
Es importante mencionar, pero bastante obvio, que @RequestParam
está destinado a funcionar cuando se usa el método HTTP GET solo porque solo con GET puede enviar una cadena de consulta con parámetros, y @RequestParam
puede vincular parámetros en la cadena de consulta a los parámetros del controlador de su controlador.
@Controlador y @RequestMapping
@Controller
@RequestMapping("/appointments")
public class AppointmentsController {
//your handlers here, for example:
@RequestMapping(path = "/new", method = RequestMethod.GET)
public AppointmentForm getNewForm() {
return new AppointmentForm();
}
@RequestMapping(method = RequestMethod.POST)
public String add(@Valid AppointmentForm appointment, BindingResult result) {
if (result.hasErrors()) {
return "appointments/new";
}
appointmentBook.addAppointment(appointment);
return "redirect:/appointments";
}
}
Con la anotación @Controller
, marcará una clase Java como una clase que contiene varios controladores HTTP, en otras palabras, puntos de acceso HTTP a su aplicación.
La anotación @RequestMapping
es la que usará para marcar los controladores HTTP (puntos de acceso HTTP a su aplicación) dentro de su clase @Controller