Spring mvc @PathVariable



можете ли вы дать мне краткое объяснение и образец В помощью @PathVariable весной mvc? Пожалуйста, укажите, как вы вводите URL-адрес?

Я изо всех сил пытаюсь получить правильный url-адрес, чтобы показать страницу jsp. Спасибо.

578   7  

7 ответов:

предположим, вы хотите написать url, чтобы получить некоторый заказ, вы можете сказать

www.mydomain.com/order/123

где 123-orderId.

Итак, теперь url, который вы будете использовать в Spring MVC controller, будет выглядеть как

/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 к весне

также обратите внимание, что PathVariable отличается от requestParam как pathVariable является частью URL. Тот же url с помощью запроса param будет выглядеть как www.mydomain.com/order?orderId=123

API DOC
Весна Официальная Ссылка

взгляните на приведенный ниже фрагмент кода.

@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;
}

надеюсь, что это поможет в создании вашего кода. Ашу

если у вас есть url с переменными пути, пример www.myexampl.com/item/12/update где 12-идентификатор, а create-переменная, которую вы хотите использовать для указания выполнения для intance при использовании одной формы для обновления и создания, Вы делаете это в своем контроллере.

   @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";
}

@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
}

предположим, вы нажмете 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
}

таким образом, значение переменной извлекается из url

@RequestMapping(value = "/download/{documentId}", method = RequestMethod.GET)
public ModelAndView download(@PathVariable int documentId) {
    ModelAndView mav = new ModelAndView();
    Document document =  documentService.fileDownload(documentId);
    mav.setViewName("download");
    mav.addObject("downloadDocument", document);

    return mav;
}

@RequestMapping(value = " / download / { documentId} " = = @PathVariable int documentId

взгляните на приведенный ниже фрагмент кода.

@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);      
    }

Если вы хотите, чтобы полный проект, чтобы увидеть, как он работает, то загрузите его из ссылки ниже:-

проект UserInfo на GitLab

Comments

    Ничего не найдено.