En este post trataremos algo muy básico como es el direccionamiento de los controladores de Spring.
Una primera forma básica es que cada método del controlador tenga su propio direccionamiento e indiquemos la ruta completa para llegar a ellos.
@Controller public class RecommendController { @GetMapping( "/recommend/user/{userId}" ) public String recommendByUser( @PathVariable Integer userId, final Model model){ //.. } @PostMapping( "/recommend/}" )public String save( @Valid RecommendForm form, BindingResult result) {//.. }
Pero lo normal es que los métodos del controlador compartan la ruta del mismo. Para poder hacer esto debemos poner la anotación '@RequestMapping' a nivel del controlador. Así le indicaremos que todas las rutas de los métodos del controlador son relativas y tienen como raíz la ruta indicada en la anotación. @Valid AppointmentForm appointment, BindingResult result
@Controller @RequestMapping( "/recommend" ) public class RecommendController { @GetMapping( "/user/{userId}" ) public String recommendByUser( @PathVariable Integer userId, final Model model){ //.. } @PostMapping( "/" ) public String save( @Valid RecommendForm form, BindingResult result) { //.. }
En ambos ejemplos podemos ver el uso de la anotación '@PathVariable' lo que nos lleva a otra utilidad que nos permite realizar el direccionamientos de los controladores de forma más dinámica y útil. A esta propiedad/habilidad se le conoce como 'URI Template Patterns'.
Con dicha variable podemos realizar que las URLs no sean estáticas sino que permitan acceder a determinados métodos en base a patrones asociados a las rutas de acceso de los mismos. Como es en los casos de arriba variables, por ejemplo la siguiente ruta nos redirigiría al método 'recommendByUser': /recommend/user/3.
URI Template Patterns también permite el uso dentro de la anotación 'RequestMapping' o el uso de expresiones regulares como: '/recommend/user/{userId:\\d}' o '/recommend/*/users/{userId}'.
Con dicha variable podemos realizar que las URLs no sean estáticas sino que permitan acceder a determinados métodos en base a patrones asociados a las rutas de acceso de los mismos. Como es en los casos de arriba variables, por ejemplo la siguiente ruta nos redirigiría al método 'recommendByUser': /recommend/user/3.
URI Template Patterns también permite el uso dentro de la anotación 'RequestMapping' o el uso de expresiones regulares como: '/recommend/user/{userId:\\d}' o '/recommend/*/users/{userId}'.
No hay comentarios:
Publicar un comentario