Printemps mvc @PathVariable

pouvez-vous me donner une brève explication et un échantillon en utilisant @PathVariable dans le MVC de printemps? Veuillez inclure sur la façon dont vous tapez l'url?

J'ai du mal à trouver la bonne url pour afficher la page jsp. Grâce.

96
demandé sur agpt 2013-11-06 07:48:13

7 réponses

supposons que vous vouliez écrire une url pour obtenir un ordre, vous pouvez dire

www.mydomain.com/order/123

où 123 est orderId.

donc maintenant l'url que vous utiliserez dans le contrôleur MVC du printemps ressemblerait à

/order/{orderId}

maintenant l'id d'ordre 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 url www.mydomain.com/order/123, alors la variable orderId sera peuplée par la valeur 123 d'ici le printemps

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

API DOC

Référence Officielle Du Printemps

187
répondu coder 2016-07-14 20:59:36

regardez 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;
}

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

9
répondu Ashu 2016-05-09 22:19:20

si vous avez une url avec des variables de chemin, exemple 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 par avance en utilisant un seul formulaire pour faire une mise à jour et créer, vous le faites dans votre controller.

   @RequestMapping(value = "/item/{id}/{method}" , RequestMethod.GET)
    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";
}
5
répondu ochiWlad 2017-06-13 15:27:54

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

par exemple: pour obtenir quelque question

/q/spring-mvc-pathvariable-38663/" /questions/{questionId}", method=RequestMethod.GET)
    public String getQuestion(@PathVariable String questionId){
    //return question details
}
2
répondu Anway Bhutkar 2017-11-10 08:58:28

supposons que vous appuyez sur une url comme www.example.com/test/111 . Maintenant vous devez récupérer la valeur 111 (qui est dynamique) de votre méthode de controller .À ce moment-là, vous utiliserez @PathVariable comme suit:

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

donc la valeur de la variable est extraite de l'url

0
répondu Gagan 2016-01-28 07:56:41
@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

0
répondu Byeon0gam 2016-04-26 06:55:06

regardez 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 souhaitez que le projet complet de voir comment il fonctionne, alors téléchargez - le à partir du lien ci-dessous: -

UserInfo Projet sur GitLab

-2
répondu Saurabh Juneja 2015-05-20 20:13:54