Câu trả lời:
giả sử bạn muốn viết một url để lấy một số thứ tự, bạn có thể nói
www.mydomain.com/order/123
Trong đó 123 là orderId.
Vì vậy, bây giờ url bạn sẽ sử dụng trong bộ điều khiển mvc mùa xuân sẽ như thế nào
/order/{orderId}
Bây giờ id thứ tự có thể được khai báo một biến đường dẫn
@RequestMapping(value = " /order/{orderId}", method=RequestMethod.GET)
public String getOrder(@PathVariable String orderId){
//fetch order
}
nếu bạn sử dụng url www.mydomain.com/order/123, thì biến orderId sẽ được điền theo giá trị 123 vào mùa xuân
Cũng lưu ý rằng PathVariable khác với requestParam vì pathVariable là một phần của URL. Cùng một url sử dụng param param sẽ giống như www.mydomain.com/order?orderId=123
Có một cái nhìn vào đoạn mã dưới đây.
@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;
}
Hy vọng nó sẽ giúp xây dựng mã của bạn.
Nếu bạn có url với các biến đường dẫn, ví dụ www.myexampl.com/item/12/update trong đó 12 là id và tạo là biến bạn muốn sử dụng để chỉ định thực thi của mình, ví dụ như sử dụng một biểu mẫu để thực hiện cập nhật và tạo, bạn làm điều này trong bộ điều khiển của bạn.
@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
được sử dụng để tìm nạp giá trị từ URL
ví dụ: để có được một số câu hỏi
www.stackoverflow.com/questions/19803731
Ở đây một số câu hỏi id
được thông qua dưới dạng tham số trong URL
Bây giờ để tìm nạp giá trị này trong controller
tất cả những gì bạn phải làm chỉ là truyền @PathVariable trong tham số phương thức
@RequestMapping(value = " /questions/{questionId}", method=RequestMethod.GET)
public String getQuestion(@PathVariable String questionId){
//return question details
}
Chú thích chỉ ra rằng một tham số phương thức nên được liên kết với biến mẫu URI. Được hỗ trợ cho các phương thức xử lý chú thích 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;
}
Giả sử bạn nhấn một url là www.example.com/test/111. Bây giờ bạn phải truy xuất giá trị 111 (động) cho phương thức điều khiển của bạn. Đến lúc bạn sẽ sử dụng @PathVariable như sau:
@RequestMapping(value = " /test/{testvalue}", method=RequestMethod.GET)
public void test(@PathVariable String testvalue){
//you can use test value here
}
Vì vậy, giá trị biến được lấy từ url
Đây là một trong những chú thích được sử dụng để ánh xạ / xử lý các URI động. Thậm chí, bạn có thể chỉ định biểu thức chính quy cho tham số động URI để chỉ chấp nhận loại đầu vào cụ thể.
Ví dụ: nếu URL để truy xuất sách bằng một số duy nhất sẽ là:
URL:http://localhost:8080/book/9783827319333
Số được biểu thị ở cuối URL có thể được tìm nạp bằng @PathVariable như được hiển thị:
@RequestMapping(value="/book/{ISBN}", method= RequestMethod.GET)
public String showBookDetails(@PathVariable("ISBN") String id,
Model model){
model.addAttribute("ISBN", id);
return "bookDetails";
}
Nói tóm lại, chỉ cần trích xuất dữ liệu từ các yêu cầu HTTP trong Spring.
có một cái nhìn vào đoạn mã dưới đây.
@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);
}
Nếu bạn muốn dự án hoàn chỉnh để xem nó hoạt động như thế nào thì hãy tải xuống từ liên kết bên dưới: -
ModelAndView
.@PathVariable
chú thích được sử dụng để có được tên biến và giá trị của nó ở cuối bộ điều khiển. ví dụ www.abcd.com/api/value=34455&anotherValue=skjdfjhks đây giá trị và anotherValue có thể thay đổi mà bạn có thể sử dụng @PathVariable ( "giá trị") int giá trị và @PathVariable ( "anotherValue") String anotherValue