Risposte:
supponiamo che tu voglia scrivere un URL per recuperare un po 'di ordine, puoi dire
www.mydomain.com/order/123
dove 123 è orderId.
Quindi ora apparirà l'URL che userai nel controller mvc di primavera
/order/{orderId}
Ora l'ID ordine può essere dichiarato una variabile di percorso
@RequestMapping(value = " /order/{orderId}", method=RequestMethod.GET)
public String getOrder(@PathVariable String orderId){
//fetch order
}
se usi l'URL www.mydomain.com/order/123, la variabile orderId verrà popolata dal valore 123 entro la primavera
Si noti inoltre che PathVariable differisce da requestParam poiché pathVariable fa parte dell'URL. Lo stesso url usando il parametro request sarebbe simile www.mydomain.com/order?orderId=123
Dai un'occhiata allo snippet di codice seguente.
@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;
}
Spero che ti aiuti a costruire il tuo codice.
Se si dispone di un URL con variabili di percorso, ad esempio www.myexampl.com/item/12/update dove 12 è l'id e creare è la variabile che si desidera utilizzare per specificare l'esecuzione ad esempio utilizzando un singolo modulo per fare un aggiornamento e crea, lo fai nel tuo 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
utilizzato per recuperare il valore dall'URL
per esempio: per avere qualche domanda
www.stackoverflow.com/questions/19803731
Qui alcune domande id
vengono passate come parametro nell'URL
Ora per recuperare questo valore in controller
tutto ciò che devi fare è solo passare @PathVariable nel parametro del metodo
@RequestMapping(value = " /questions/{questionId}", method=RequestMethod.GET)
public String getQuestion(@PathVariable String questionId){
//return question details
}
Annotazione che indica che un parametro di metodo deve essere associato a una variabile del modello URI. Supportato per i metodi di gestore annotato 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;
}
Supponiamo che tu abbia raggiunto un url come www.example.com/test/111. Ora devi recuperare il valore 111 (che è dinamico) nel metodo del tuo controller. Al momento utilizzerai @PathVariable come segue:
@RequestMapping(value = " /test/{testvalue}", method=RequestMethod.GET)
public void test(@PathVariable String testvalue){
//you can use test value here
}
Quindi il valore della variabile viene recuperato dall'URL
È una delle annotazioni utilizzate per mappare / gestire gli URI dinamici. È anche possibile specificare un'espressione regolare per il parametro dinamico URI per accettare solo un tipo specifico di input.
Ad esempio, se l'URL per recuperare un libro utilizzando un numero univoco sarebbe:
URL:http://localhost:8080/book/9783827319333
Il numero indicato nell'ultimo URL può essere recuperato utilizzando @PathVariable come mostrato:
@RequestMapping(value="/book/{ISBN}", method= RequestMethod.GET)
public String showBookDetails(@PathVariable("ISBN") String id,
Model model){
model.addAttribute("ISBN", id);
return "bookDetails";
}
In breve, è solo un altro per estrarre i dati dalle richieste HTTP in primavera.
dai un'occhiata allo snippet di codice seguente.
@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);
}
Se vuoi che il progetto completo veda come funziona, scaricalo dal seguente link: -
ModelAndView
.@PathVariable
annotazione utilizzata per ottenere il nome della variabile e il suo valore alla fine del controller. ad esempio www.abcd.com/api/value=34455&anotherValue=skjdfjhks qui il valore e anotherValue è variabile che si può ottenere utilizzando @PathVariable ( "valore") il valore int e @PathVariable ( "anotherValue") String anotherValue