Yanıtlar:
bir sipariş almak için bir url yazmak istediğinizi varsayalım, diyebilirsiniz
www.mydomain.com/order/123
123, orderId'dir.
Yani şimdi bahar mvc denetleyicisinde kullanacağınız url şöyle görünecektir:
/order/{orderId}
Artık sipariş kimliği bir yol değişkeni olarak tanımlanabilir
@RequestMapping(value = " /order/{orderId}", method=RequestMethod.GET)
public String getOrder(@PathVariable String orderId){
//fetch order
}
url www.mydomain.com/order/123 kullanırsanız, orderId değişkeni ilkbaharda 123 değeri ile doldurulur.
Ayrıca, pathVariable URL'nin bir parçası olduğu için PathVariable'ın requestParam'dan farklı olduğunu unutmayın. İstek parametresini kullanan aynı url şöyle görünür www.mydomain.com/order?orderId=123
Aşağıdaki kod parçasına bir göz atın.
@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;
}
Umarım kodunuzu oluşturmanıza yardımcı olur.
Yol değişkenleri olan bir url'niz varsa, örneğin www.myexampl.com/item/12/update burada 12 id ve create, yürütmenizi belirtmek için kullanmak istediğiniz değişkendir, örneğin bir güncelleme yapmak için tek bir form kullanarak ve oluşturmak, bunu kontrol cihazınızda yaparsınız.
@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
değeri URL'den almak için kullanılır
örneğin: Bir soru almak için
www.stackoverflow.com/questions/19803731
Burada bazı sorular id
URL'de parametre olarak iletilir
Şimdi bu değeri almak için controller
yapmanız gereken tek şey, yöntem parametresinde @PathVariable'ı geçmek.
@RequestMapping(value = " /questions/{questionId}", method=RequestMethod.GET)
public String getQuestion(@PathVariable String questionId){
//return question details
}
Bir yöntem parametresinin bir URI şablon değişkenine bağlanması gerektiğini belirten ek açıklama. RequestMapping açıklamalı işleyici yöntemleri için desteklenir.
@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;
}
Www.example.com/test/111 olarak bir url'ye ulaştığınızı varsayalım. Şimdi denetleyici yönteminize 111 değerini (dinamik olan) almanız gerekiyor. @PathVariable'ı aşağıdaki gibi kullanacaksınız:
@RequestMapping(value = " /test/{testvalue}", method=RequestMethod.GET)
public void test(@PathVariable String testvalue){
//you can use test value here
}
SO değişken değeri url'den alınır
Dinamik URI'leri eşlemek / işlemek için kullanılan ek açıklamalardan biridir. Yalnızca belirli bir girdi türünü kabul etmek için URI dinamik parametresine yönelik normal bir ifade bile belirtebilirsiniz.
Örneğin, benzersiz bir numara kullanarak bir kitabı almak için URL şöyle olursa:
URL:http://localhost:8080/book/9783827319333
URL'nin sonundaki numara, gösterildiği gibi @PathVariable kullanılarak getirilebilir:
@RequestMapping(value="/book/{ISBN}", method= RequestMethod.GET)
public String showBookDetails(@PathVariable("ISBN") String id,
Model model){
model.addAttribute("ISBN", id);
return "bookDetails";
}
Kısacası, Spring'deki HTTP isteklerinden veri çıkarmak başka bir şeydi.
aşağıdaki kod parçasına bir göz atın.
@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);
}
Tüm projenin nasıl çalıştığını görmesini istiyorsanız, aşağıdaki bağlantıdan indirin: -
ModelAndView
.@PathVariable
ek açıklama değişken adını ve denetleyici sonunda değerini almak için kullanılır. ör. www.abcd.com/api/value=34455&anotherValue=skjdfjhks buradaki değer ve anotherValue @PathVariable ("value") int değeri ve @PathVariable ("anotherValue") String anotherValue