Réponses:
supposons que vous vouliez écrire une URL pour récupérer de l'ordre, vous pouvez dire
www.mydomain.com/order/123
où 123 est orderId.
Alors maintenant, l'URL que vous utiliserez dans le contrôleur mvc de printemps ressemblerait à
/order/{orderId}
Maintenant, l'ID de commande peut être déclaré une variable de chemin
@RequestMapping(value = " /order/{orderId}", method=RequestMethod.GET)
public String getOrder(@PathVariable String orderId){
//fetch order
}
si vous utilisez l'url www.mondomaine.com/order/123, la variable orderId sera renseignée par la valeur 123 au printemps
Notez également que PathVariable diffère de requestParam car pathVariable fait partie de l'URL. La même URL utilisant le paramètre de requête ressemblerait à www.mydomain.com/order?orderId=123
Jetez un œil à l'extrait de code ci-dessous.
@RequestMapping(value="/Add/{type}")
public ModelAndView addForm(@PathVariable String 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 aidera à construire votre code.
Si vous avez une URL avec des variables de chemin, par exemple www.myexampl.com/item/12/update où 12 est l'id et create est la variable que vous souhaitez utiliser pour spécifier votre exécution, par exemple en utilisant un seul formulaire pour faire une mise à jour et create, vous faites cela dans votre contrôleur.
@PostMapping(value = "/item/{id}/{method}")
public String getForm(@PathVariable("id") String itemId ,
@PathVariable("method") String 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, une question id
est passée en paramètre dans l'URL
Maintenant, pour récupérer cette valeur, controller
tout ce que vous avez à faire est simplement de passer @PathVariable dans le paramètre de méthode
@RequestMapping(value = " /questions/{questionId}", method=RequestMethod.GET)
public String getQuestion(@PathVariable String questionId){
//return question details
}
Annotation qui indique qu'un paramètre de méthode doit être lié à une variable de modèle d'URI. Pris en charge pour les méthodes de gestionnaire annotées RequestMapping.
@RequestMapping(value = "/download/{documentId}", method = RequestMethod.GET)
public ModelAndView download(@PathVariable int documentId) {
ModelAndView mav = new ModelAndView();
Document document = documentService.fileDownload(documentId);
mav.addObject("downloadDocument", document);
mav.setViewName("download");
return mav;
}
Supposons que vous atteigniez une URL comme www.example.com/test/111. Vous devez maintenant récupérer la valeur 111 (qui est dynamique) dans votre méthode de contrôleur. Au moment où vous utiliserez @PathVariable comme suit:
@RequestMapping(value = " /test/{testvalue}", method=RequestMethod.GET)
public void test(@PathVariable String testvalue){
//you can use test value here
}
SO la valeur de la variable est extraite de l'url
C'est l'une des annotations utilisées pour mapper / gérer les URI dynamiques. Vous pouvez même spécifier une expression régulière pour que le paramètre dynamique d'URI n'accepte qu'un type d'entrée spécifique.
Par exemple, si l'URL pour récupérer un livre en utilisant un numéro unique serait:
URL:http://localhost:8080/book/9783827319333
Le numéro indiqué au dernier de l'URL peut être récupéré en utilisant @PathVariable comme indiqué:
@RequestMapping(value="/book/{ISBN}", method= RequestMethod.GET)
public String showBookDetails(@PathVariable("ISBN") String id,
Model model){
model.addAttribute("ISBN", id);
return "bookDetails";
}
En bref, il s'agit simplement d'extraire des données à partir de requêtes HTTP au printemps.
jetez un œil à l'extrait de code ci-dessous.
@RequestMapping(value = "edit.htm", method = RequestMethod.GET)
public ModelAndView edit(@RequestParam("id") String id) throws Exception {
ModelMap modelMap = new ModelMap();
modelMap.addAttribute("user", userinfoDao.findById(id));
return new ModelAndView("edit", modelMap);
}
Si vous voulez que le projet complet voie comment cela fonctionne, téléchargez-le à partir du lien ci-dessous: -
ModelAndView
.@PathVariable
annotation utilisée pour obtenir le nom de la variable et sa valeur à la fin du contrôleur. par exemple www.abcd.com/api/value=34455&anotherValue=skjdfjhks ici value et anotherValue est une variable que vous pouvez obtenir en utilisant @PathVariable ("value") int value et @PathVariable ("anotherValue") String anotherValue