Можете ли вы дать мне краткое объяснение и образец использования @PathVariable
в spring mvc? Укажите, как вы вводите URL-адрес?
Я пытаюсь получить правильный URL-адрес, чтобы показать страницу jsp. Спасибо.
Spring mvc @PathVariable
Ответ 1
Предположим, вы хотите написать url для получения некоторого заказа, вы можете сказать
www.mydomain.com/order/123
где 123 - orderId.
Итак, теперь URL-адрес, который вы будете использовать в контроллере spring mvc, будет выглядеть как
/order/{orderId}
Теперь идентификатор заказа может быть объявлен переменной пути
@RequestMapping(value = " /order/{orderId}", method=RequestMethod.GET)
public String getOrder(@PathVariable String orderId){
//fetch order
}
если вы используете URL-адрес www.mydomain.com/order/123, тогда переменная orderId будет заполнена значением 123 с помощью spring
Также обратите внимание, что PathVariable отличается от requestParam, поскольку pathVariable является частью URL.
Тот же url с использованием параметра запроса будет выглядеть как www.mydomain.com/order?orderId=123
Ответ 2
Посмотрите на приведенный ниже фрагмент кода.
@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;
}
Надеюсь, это поможет в создании вашего кода.
Ответ 3
Если у вас есть URL-адрес с переменными пути, например, www.myexampl.com/item/12/update, где 12 - это идентификатор, а create - это переменная, которую вы хотите использовать для указания вашего исполнения для использования в одной форме обновление и создание, вы делаете это в своем контроллере.
@RequestMapping(value = "/item/{id}/{method}" , RequestMethod.GET)
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";
}
Ответ 4
@PathVariable
используется для получения значения из URL
например: чтобы получить вопрос
www.stackoverflow.com/questions/19803731
Здесь некоторый id
вопроса передается в качестве параметра в URL
Теперь для получения этого значения в controller
все, что вам нужно сделать, это просто передать @PathVariable в параметре метода
@RequestMapping(value = " /questions/{questionId}", method=RequestMethod.GET)
public String getQuestion(@PathVariable String questionId){
//return question details
}
Ответ 5
Аннотация, которая указывает, что параметр метода должен быть связан с переменной шаблона URI. Поддерживается для аннотированных методов-обработчиков 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;
}
Ответ 6
Предположим, вы набрали URL-адрес как www.example.com/test/111. Теперь вам нужно получить значение 111 (которое является динамическим) для вашего метода контроллера. В то время, когда вы будете использовать @PathVariable следующим образом:
@RequestMapping(value = " /test/{testvalue}", method=RequestMethod.GET)
public void test(@PathVariable String testvalue){
//you can use test value here
}
SO, значение переменной извлекается из URL
Ответ 7
С помощью Spring 4 вы можете использовать более удобную аннотацию @GetMapping. @GetMapping - это составленная аннотация, которая действует как ярлык для @RequestMapping (method = RequestMethod.GET)
@GetMapping ( "/запрос/{ID}" ) public String getRequest (@PathVariable String id) {
Ответ 8
Это одна из аннотаций, используемых для отображения/обработки динамических URI. Вы даже можете указать регулярное выражение для динамического параметра URI, чтобы принимать только определенный тип ввода.
Например, если URL-адрес для получения книги с использованием уникального номера будет:
URL:http://localhost:8080/book/9783827319333
Число, обозначенное в последнем URL-адресе, можно получить с помощью @PathVariable, как показано ниже:
@RequestMapping(value="/book/{ISBN}", method= RequestMethod.GET)
public String showBookDetails(@PathVariable("ISBN") String id,
Model model){
model.addAttribute("ISBN", id);
return "bookDetails";
}
Короче говоря, это просто еще одно извлечение данных из HTTP-запросов в Spring.
Ответ 9
посмотрите ниже фрагмент кода.
@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);
}
Если вы хотите, чтобы весь проект увидел, как он работает, загрузите его снизу ссылку: -