web-dev-qa-db-fra.com

Variable Spring MVC @Path avec {} accolades

Je développe une application en utilisant Spring Boot. Dans le contrôleur REST je préfère utiliser la variable de chemin (@PathVariabale annotation). Mon code récupère la variable path mais il contient {} accolades comme dans l'url. S'il vous plaît, quelqu'un me suggère de résoudre ce problème

@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}

Sortie mise en contrôleur

{John}

23

Utilisation http://localhost:8080/user/item/john pour soumettre votre demande à la place.

Vous donnez à Spring une valeur de "{john}" à la variable de chemin loginName, donc Spring l'obtient avec le "{}"

Web MVC framework indique que

Modèles de modèle d'URI

Les modèles d'URI peuvent être utilisés pour un accès pratique aux parties sélectionnées d'une URL dans une méthode @RequestMapping.

Un modèle d'URI est une chaîne de type URI , contenant un ou plusieurs noms de variable. Lorsque vous substituez des valeurs à ces variables, le modèle devient un URI . Le RFC proposé pour les modèles d'URI définit la façon dont un URI est paramétré. Par exemple, le modèle d'URI http://www.example.com/users/ {userId} contient la variable userId . L'affectation de la valeur fred à la variable donne http://www.example.com/users/fred .

Dans Spring MVC, vous pouvez utiliser l'annotation @PathVariable sur un argument de méthode pour le lier à la valeur d'une variable de modèle d'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"; 
  }

Le modèle d'URI "/ propriétaires/{ownerId}" spécifie le nom de variable ownerId. Lorsque le contrôleur gère cette demande, la valeur de ownerId est définie sur la valeur trouvée dans la partie appropriée de l'URI. Par exemple, lorsqu'une demande arrive pour/owner/fred, la valeur de ownerId est fred.

43
Jaskey