tutorial mvc example español spring-mvc

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:

Proyecto de UserInfo en GitLab


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

API DOC
Referencia oficial de primavera


@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