Spring mvc @PathVariable

Pouvez-vous me donner une brève explication et un exemple d’utilisation de @PathVariable au spring mvc? S’il vous plaît inclure sur la façon dont vous tapez l’URL?
J’ai du mal à obtenir le bon URL pour afficher la page jsp. Merci.

Supposons que vous vouliez écrire une URL pour récupérer un ordre, vous pouvez dire

 www.mydomain.com/order/123 

où 123 est orderId.

Alors maintenant, l’URL que vous utiliserez au spring mvc controller ressemblerait à

 /order/{orderId} 

Maintenant, l’ID d’ordre peut être déclaré variable de chemin

 @RequestMapping(value = " /order/{orderId}", method=RequestMethod.GET) public Ssortingng getOrder(@PathVariable Ssortingng orderId){ //fetch order } 

si vous utilisez l’adresse URL http://www.mydomain.com/order/123, la variable orderId sera remplie par la valeur 123 au spring.

Notez également que PathVariable diffère de requestParam car pathVariable fait partie de l’URL. La même url utilisant param de demande ressemblerait à www.mydomain.com/order?orderId=123

API DOC
Référence officielle du spring

Regardez l’extrait de code ci-dessous.

 @RequestMapping(value="/Add/{type}") public ModelAndView addForm(@PathVariable Ssortingng type ){ ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("addContent"); modelAndView.addObject("typelist",contentPropertyDAO.getType() ); modelAndView.addObject("property",contentPropertyDAO.get(type,0) ); return modelAndView; } 

J’espère que cela vous aidera à construire votre code. ashu

Si vous avez une URL avec des variables de chemin, par exemple http://www.myexampl.com/item/12/update où 12 est l’id et create est la variable que vous voulez utiliser pour spécifier votre exécution en utilisant un seul formulaire pour faire une mise à jour et créer, vous le faites dans votre contrôleur.

  @RequestMapping(value = "/item/{id}/{method}" , RequestMethod.GET) public Ssortingng getForm(@PathVariable("id") Ssortingng itemId , @PathVariable("method") Ssortingng methodCall , Model model){ if(methodCall.equals("create")){ //logic } if(methodCall.equals("update")){ //logic } return "path to your form"; } 

@PathVariable utilisé pour récupérer la valeur de l’url

par exemple: pour avoir une question

 www.stackoverflow.com/questions/19803731 

Ici, un id question est passé en paramètre dans url

Maintenant, pour récupérer cette valeur dans le controller vous suffit de passer @PathVariable et dans le paramètre method

 @RequestMapping(value = " /questions/{questionId}", method=RequestMethod.GET) public Ssortingng getQuestion(@PathVariable Ssortingng questionId){ //return question details } 

Supposons que vous frappiez une URL sous la forme http://www.example.com/test/111. Maintenant, vous devez récupérer la valeur 111 (qui est dynamic) à la méthode de votre contrôleur. A l’heure où vous utiliserez @PathVariable, procédez comme suit:

 @RequestMapping(value = " /test/{testvalue}", method=RequestMethod.GET) public void test(@PathVariable Ssortingng testvalue){ //you can use test value here } 

SO la valeur de la variable est extraite de l’url

 @RequestMapping(value = "/download/{documentId}", method = RequestMethod.GET) public ModelAndView download(@PathVariable int documentId) { ModelAndView mav = new ModelAndView(); Document document = documentService.fileDownload(documentId); mav.setViewName("download"); mav.addObject("downloadDocument", document); return mav; } 

@RequestMapping (value = “/ download / { documentId }” == @PathVariable int documentId

Regardez l’extrait de code ci-dessous.

 @RequestMapping(value = "edit.htm", method = RequestMethod.GET) public ModelAndView edit(@RequestParam("id") Ssortingng id) throws Exception { ModelMap modelMap = new ModelMap(); modelMap.addAtsortingbute("user", userinfoDao.findById(id)); return new ModelAndView("edit", modelMap); } 

Si vous voulez que le projet complet voie son fonctionnement, téléchargez-le depuis le lien ci-dessous:

Projet UserInfo sur GitLab