Jawaban:
misalkan Anda ingin menulis url untuk mengambil beberapa pesanan, Anda dapat berkata
www.mydomain.com/order/123
dengan 123 adalah orderId.
Jadi sekarang url yang akan Anda gunakan di pegas pengontrol mvc akan terlihat seperti
/order/{orderId}
Sekarang order id dapat dideklarasikan sebagai variabel path
@RequestMapping(value = " /order/{orderId}", method=RequestMethod.GET)
public String getOrder(@PathVariable String orderId){
//fetch order
}
Jika Anda menggunakan url www.mydomain.com/order/123, maka variabel orderId akan diisi dengan nilai 123 pada musim semi
Perhatikan juga bahwa PathVariable berbeda dari requestParam karena pathVariable adalah bagian dari URL. Url yang sama menggunakan parameter permintaan akan terlihat seperti ini www.mydomain.com/order?orderId=123
Lihat cuplikan kode di bawah ini.
@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;
}
Semoga membantu dalam membangun kode Anda.
Jika Anda memiliki url dengan variabel jalur, contoh www.myexampl.com/item/12/update di mana 12 adalah id dan create adalah variabel yang ingin Anda gunakan untuk menentukan eksekusi Anda misalnya dalam menggunakan satu formulir untuk melakukan pembaruan dan buat, Anda melakukan ini di pengontrol Anda.
@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
digunakan untuk mengambil nilai dari URL
Misalnya: Untuk mendapatkan beberapa pertanyaan
www.stackoverflow.com/questions/19803731
Di sini beberapa pertanyaan id
dilewatkan sebagai parameter di URL
Sekarang untuk mengambil nilai ini, yang controller
harus Anda lakukan hanyalah meneruskan @PathVariable dalam parameter metode
@RequestMapping(value = " /questions/{questionId}", method=RequestMethod.GET)
public String getQuestion(@PathVariable String questionId){
//return question details
}
Anotasi yang menunjukkan bahwa parameter metode harus terikat ke variabel template URI. Didukung untuk metode penangan beranotasi 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;
}
Mari kita asumsikan Anda menekan url sebagai www.example.com/test/111. Sekarang Anda harus mengambil nilai 111 (yang dinamis) ke metode pengontrol. Saat ini Anda akan menggunakan @PathVariable sebagai berikut:
@RequestMapping(value = " /test/{testvalue}", method=RequestMethod.GET)
public void test(@PathVariable String testvalue){
//you can use test value here
}
SO nilai variabel diambil dari url
Ini adalah salah satu anotasi yang digunakan untuk memetakan / menangani URI dinamis. Anda bahkan dapat menetapkan ekspresi reguler untuk parameter dinamis URI agar hanya menerima jenis masukan tertentu.
Misalnya, jika URL untuk mengambil buku menggunakan nomor unik adalah:
URL:http://localhost:8080/book/9783827319333
Angka yang dilambangkan di akhir URL dapat diambil menggunakan @PathVariable seperti yang ditunjukkan:
@RequestMapping(value="/book/{ISBN}", method= RequestMethod.GET)
public String showBookDetails(@PathVariable("ISBN") String id,
Model model){
model.addAttribute("ISBN", id);
return "bookDetails";
}
Singkatnya, ini hanyalah mengekstrak data dari permintaan HTTP di Spring.
lihat cuplikan kode di bawah ini.
@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);
}
Jika Anda ingin proyek lengkap untuk melihat cara kerjanya, unduh dari tautan di bawah ini: -
ModelAndView
.@PathVariable
penjelasan digunakan untuk mendapatkan nama variabel dan nilainya di ujung pengontrol. misalnya www.abcd.com/api/value=34455&anotherValue=skjdfjhks di sini nilai dan anotherValue adalah variabel yang dapat Anda peroleh menggunakan nilai int @PathVariable ("value") dan @PathVariable ("anotherValue") String anotherValue