example - Spring mvc @PathVariable
spring mvc tutorial español pdf (8)
@PathVariable solía recuperar valor de url
por ejemplo: para obtener alguna pregunta
www.stackoverflow.com/questions/19803731
Aquí se pasa una id
pregunta como un parámetro en url
Ahora, para obtener este valor en el controller
todo lo que tiene que hacer es pasar @PathVariable y en el parámetro del método
@RequestMapping(value = " /questions/{questionId}", method=RequestMethod.GET)
public String getQuestion(@PathVariable String questionId){
//return question details
}
¿Puede darme una breve explicación y una muestra al usar @PathVariable
en Spring mvc? Por favor, incluya en cómo escribe la url?
Estoy luchando para obtener la URL correcta para mostrar la página jsp. Gracias.
Con Spring 4 puede usar la anotación @GetMapping más conveniente. @GetMapping es una anotación compuesta que actúa como un atajo para @RequestMapping (method = RequestMethod.GET)
@GetMapping ("/ request / {id}") public String getRequest (@PathVariable String id) {
Si tiene url con variables de ruta, por ejemplo, www.myexampl.com/item/12/update, donde 12 es la identificación, y create es la variable que desea usar para especificar su ejecución para intance al usar una sola forma para hacer una actualización y crear, haces esto en tu controlador.
@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";
}
Supongamos que presionas una url como www.example.com/test/111. Ahora tiene que recuperar el valor 111 (que es dinámico) para su método de controlador. A la vez, utilizará @PathVariable de la siguiente manera:
@RequestMapping(value = " /test/{testvalue}", method=RequestMethod.GET)
public void test(@PathVariable String testvalue){
//you can use test value here
}
SO el valor de la variable se recupera de la url
eche un vistazo al fragmento de código a continuació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);
}
Si desea que el proyecto completo vea cómo funciona, descárguelo desde el siguiente enlace:
eche un vistazo al fragmento de código a continuació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;
}
Espero que te ayude a construir tu código. ashu
supongamos que quiere escribir una url para buscar un poco de orden, puede decir
www.mydomain.com/order/123
donde 123 es orderId.
Así que ahora la URL que usarás en el controlador mvc de primavera se vería como
/order/{orderId}
Ahora el ID del pedido puede declararse como una variable de ruta
@RequestMapping(value = " /order/{orderId}", method=RequestMethod.GET)
public String getOrder(@PathVariable String orderId){
//fetch order
}
si usa url www.mydomain.com/order/123, la variable orderId se completará con el valor 123 antes de la primavera
También tenga en cuenta que PathVariable difiere de requestParam como pathVariable es parte de la URL. La misma URL que usa param de solicitud se vería como www.mydomain.com/order?orderId=123
@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