Respuestas:
supongamos que desea escribir una url para obtener algún orden, puede decir
www.mydomain.com/order/123
donde 123 es orderId.
Así que ahora la url que usará en el controlador mvc de primavera se vería así
/order/{orderId}
Ahora el ID del pedido se puede declarar una variable de ruta
@RequestMapping(value = " /order/{orderId}", method=RequestMethod.GET)
public String getOrder(@PathVariable String orderId){
//fetch order
}
si usa la URL www.mydomain.com/order/123, la variable orderId se completará con el valor 123 en primavera
También tenga en cuenta que PathVariable difiere de requestParam ya que pathVariable es parte de la URL. La misma url usando request param se vería así www.mydomain.com/order?orderId=123
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 ayude a construir su código.
Si tiene una URL con variables de ruta, por ejemplo www.myexampl.com/item/12/update donde 12 es la identificación y crear es la variable que desea usar para especificar su ejecución, por ejemplo, al usar un formulario único para hacer una actualización y crea, haces esto en tu controlador.
@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
se utiliza para obtener el valor de la URL
por ejemplo: para obtener alguna pregunta
www.stackoverflow.com/questions/19803731
Aquí id
se pasa alguna pregunta como parámetro en URL
Ahora para obtener este valor en controller
todo lo que tiene que hacer es simplemente pasar @PathVariable en el parámetro del método
@RequestMapping(value = " /questions/{questionId}", method=RequestMethod.GET)
public String getQuestion(@PathVariable String questionId){
//return question details
}
Anotación que indica que un parámetro de método debe estar vinculado a una variable de plantilla URI. Compatible con los métodos de controlador anotado 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;
}
Supongamos que llega a una URL como www.example.com/test/111. Ahora debe recuperar el valor 111 (que es dinámico) en su método de controlador. En ese momento 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 variable se recupera de la url
Es una de las anotaciones utilizadas para asignar / manejar URI dinámicos. Incluso puede especificar una expresión regular para el parámetro dinámico URI para aceptar solo un tipo específico de entrada.
Por ejemplo, si la URL para recuperar un libro usando un número único sería:
URL:http://localhost:8080/book/9783827319333
El número indicado al final de la URL se puede obtener usando @PathVariable como se muestra:
@RequestMapping(value="/book/{ISBN}", method= RequestMethod.GET)
public String showBookDetails(@PathVariable("ISBN") String id,
Model model){
model.addAttribute("ISBN", id);
return "bookDetails";
}
En resumen, es solo otro era extraer datos de solicitudes HTTP en Spring.
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 del siguiente enlace:
ModelAndView
.@PathVariable
anotación utilizada para obtener el nombre de la variable y su valor al final del controlador. por ejemplo, www.abcd.com/api/value=34455&anotherValue=skjdfjhks here value y anotherValue es variable que puede obtener utilizando @PathVariable ("value") int value y @PathVariable ("anotherValue") String anotherValue