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.
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
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
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";
}
@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
}
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
@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") 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: -