Antworten:
Angenommen, Sie möchten eine URL schreiben, um eine Bestellung abzurufen, können Sie sagen
www.mydomain.com/order/123
Dabei ist 123 orderId.
So, jetzt würde die URL, die Sie im Frühjahr mvc Controller verwenden, aussehen
/order/{orderId}
Jetzt kann die Auftrags-ID als Pfadvariable deklariert werden
@RequestMapping(value = " /order/{orderId}", method=RequestMethod.GET)
public String getOrder(@PathVariable String orderId){
//fetch order
}
Wenn Sie die URL www.mydomain.com/order/123 verwenden, wird die Variable orderId bis zum Frühjahr mit dem Wert 123 gefüllt
Beachten Sie auch, dass sich PathVariable von requestParam unterscheidet, da pathVariable Teil der URL ist. Die gleiche URL mit request param würde aussehen www.mydomain.com/order?orderId=123
Schauen Sie sich das folgende Code-Snippet an.
@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;
}
Hoffe, es hilft bei der Erstellung Ihres Codes.
Wenn Sie eine URL mit Pfadvariablen haben, z. B. www.myexampl.com/item/12/update, wobei 12 die ID und create die Variable ist, die Sie zum Festlegen Ihrer Ausführung verwenden möchten, z. B. wenn Sie ein einzelnes Formular verwenden, um ein Update durchzuführen, und erstellen, tun Sie dies in Ihrem Controller.
@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
wird verwendet, um den Wert von der URL abzurufen
Zum Beispiel: Um eine Frage zu bekommen
www.stackoverflow.com/questions/19803731
Hier eine Frage id
als Parameter in der URL übergeben
controller
Um diesen Wert abzurufen , müssen Sie lediglich @PathVariable im Methodenparameter übergeben
@RequestMapping(value = " /questions/{questionId}", method=RequestMethod.GET)
public String getQuestion(@PathVariable String questionId){
//return question details
}
Anmerkung, die angibt, dass ein Methodenparameter an eine URI-Vorlagenvariable gebunden werden soll. Unterstützt für mit RequestMapping versehene Handlermethoden.
@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;
}
Nehmen wir an, Sie haben eine URL als www.example.com/test/111 aufgerufen. Jetzt müssen Sie den Wert 111 (der dynamisch ist) für Ihre Controller-Methode abrufen. Zu der Zeit werden Sie @PathVariable wie folgt verwenden:
@RequestMapping(value = " /test/{testvalue}", method=RequestMethod.GET)
public void test(@PathVariable String testvalue){
//you can use test value here
}
SO wird der Variablenwert aus der URL abgerufen
Dies ist eine der Anmerkungen, die zum Zuordnen / Behandeln dynamischer URIs verwendet werden. Sie können sogar einen regulären Ausdruck für den dynamischen URI-Parameter angeben, um nur einen bestimmten Eingabetyp zu akzeptieren.
Wenn die URL zum Abrufen eines Buches unter Verwendung einer eindeutigen Nummer beispielsweise wie folgt lautet:
URL:http://localhost:8080/book/9783827319333
Die am letzten Ende der URL angegebene Nummer kann mit @PathVariable wie folgt abgerufen werden:
@RequestMapping(value="/book/{ISBN}", method= RequestMethod.GET)
public String showBookDetails(@PathVariable("ISBN") String id,
Model model){
model.addAttribute("ISBN", id);
return "bookDetails";
}
Kurz gesagt, es ist nur eine weitere Aufgabe, im Frühjahr Daten aus HTTP-Anforderungen zu extrahieren.
Schauen Sie sich das folgende Code-Snippet an.
@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);
}
Wenn Sie möchten, dass das gesamte Projekt funktioniert, laden Sie es über den folgenden Link herunter: -
ModelAndView
.@PathVariable
Anmerkung, die verwendet wird, um den Variablennamen und seinen Wert am Ende des Controllers abzurufen. zB www.abcd.com/api/value=34455&anotherValue=skjdfjhks hier value und anotherValue ist eine Variable, die Sie mit @PathVariable ("value") int value und @PathVariable ("anotherValue") String anotherValue