tutorial starter mvc espaƱol desde data curso cero java spring spring-mvc spring-boot

java - starter - spring io



Spring MVC @Path variable con llaves{} (1)

Utilice http://localhost:8080/user/item/john para enviar su solicitud.

Le loginName Spring un valor de "{john}" a la variable de ruta loginName , de modo que Spring lo obtenga con "{}"

Web MVC framework establece que

Patrones de plantillas URI

Las plantillas de URI se pueden usar para acceder cómodamente a partes seleccionadas de una URL en un método de @RequestMapping.

Una plantilla de URI es una cadena similar a URI , que contiene uno o más nombres de variables. Cuando sustituye los valores de estas variables, la plantilla se convierte en un URI . El RFC propuesto para las plantillas URI define cómo se parametriza un URI. Por ejemplo, la plantilla de URI http://www.example.com/users/ {userId} contiene la variable userId . Al asignar el valor fred a la variable, se obtiene http://www.example.com/users/fred .

En Spring MVC puede usar la anotación @PathVariable en un argumento de método para vincularla al valor de una variable de plantilla URI:

@RequestMapping(value="/owners/{ownerId}", method=RequestMethod.GET) public String findOwner(@PathVariable String ownerId, Model model) { Owner owner = ownerService.findOwner(ownerId); model.addAttribute("owner", owner); return "displayOwner"; }

La plantilla de URI "/ owners / {ownerId}" especifica el nombre de variable ownerId. Cuando el controlador maneja esta solicitud, el valor de ownerId se establece en el valor encontrado en la parte apropiada del URI. Por ejemplo, cuando llega una solicitud para / owners / fred, el valor de ownerId es fred.

Estoy desarrollando una aplicación usando Spring Boot. En el controlador REST prefiero usar la variable de ruta (anotación @PathVariabale ). Mi código que recupera la variable de ruta pero contatina {} se pone en llaves como está en la url. Por favor, alguien me sugiera para resolver este problema.

@RequestMapping(value = "/user/item/{loginName}", method = RequestMethod.GET) public void getSourceDetails(@PathVariable String loginName) { try { System.out.println(loginName); // it print like this {john} } catch (Exception e) { LOG.error(e); } }

URL

http://localhost:8080/user/item/{john}

Fuera puesto en el controlador

{Juan}