Spring mvc @PathVariable
你可以给我一个简单的解释和春季mvc中使用@PathVariable
的示例? 请包括如何inputurl?
我正在努力获得正确的url显示jsp页面。 谢谢。
假设你想写一个url来获取一些命令,你可以说
www.mydomain.com/order/123
123是orderId。
所以现在你将在springmvc控制器中使用的url看起来像
/order/{orderId}
现在,可以将订单ID声明为pathvariables
@RequestMapping(value = " /order/{orderId}", method=RequestMethod.GET) public String getOrder(@PathVariable String orderId){ //fetch order }
如果您使用url http://www.mydomain.com/order/123,则orderIdvariables将在春季由值123填充;
另请注意,PathVariable与requestParam不同,因为pathVariable是URL的一部分。 请求参数使用相同的url将看起来像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; }
希望它有助于构build你的代码。 阿树
如果你有pathvariables的URL,例如www.myexampl.com/item/12/update,其中12是id,create是你想要用来指定执行的variables,以便使用单个表单进行更新,创build,你在你的控制器中这样做。
@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"; }
让我们假设您访问www.example.com/test/111url。 现在你必须检索值111(这是dynamic的)到你的控制器方法。当你将使用@PathVariable如下:
@RequestMapping(value = " /test/{testvalue}", method=RequestMethod.GET) public void test(@PathVariable String testvalue){ //you can use test value here }
所以variables值是从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
使用Spring 4,你可以使用更方便的@GetMapping注解。 @GetMapping是一个组合的注释,作为@RequestMapping(method = RequestMethod.GET)的快捷方式,
@GetMapping(“/ request / {id}”)public String getRequest(@PathVariable String id){
用于从url获取值的@PathVariable
例如:得到一些问题
www.stackoverflow.com/questions/19803731
这里有一些问题id
作为url中的parameter passing
现在要在controller
获取此值,您只需传递@PathVariable和方法参数即可
@RequestMapping(value = " /questions/{questionId}", method=RequestMethod.GET) public String getQuestion(@PathVariable String questionId){ //return question details }
看看下面的代码片段。
@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上