你能为我简要解释一下在Spring MVC中如何使用
我正在努力获得正确的URL以显示JSP页面。谢谢。
@PathVariable
并提供一个示例吗?请包括如何键入URL。我正在努力获得正确的URL以显示JSP页面。谢谢。
@PathVariable
并提供一个示例吗?请包括如何键入URL。www.mydomain.com/order/123
其中123是orderId。
现在在Spring MVC控制器中使用的URL将如下所示
/order/{orderId}
现在订单ID可以声明为路径变量。@RequestMapping(value = " /order/{orderId}", method=RequestMethod.GET)
public String getOrder(@PathVariable String orderId){
//fetch order
}
如果您使用的URL是www.mydomain.com/order/123,则Spring会将orderId变量填充为值123。
另外请注意,PathVariable与requestParam不同,因为PathVariable是URL的一部分。
使用请求参数的相同URL将如下所示:www.mydomain.com/order?orderId=123
请看下面的代码片段。
@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是ID,create是您要用于指定执行的变量,例如使用单个表单进行更新和创建,您可以在控制器中执行此操作。
@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
用于从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
}
注解表示方法参数应绑定到URI模板变量。支持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;
}
@RequestMapping(value = " /test/{testvalue}", method=RequestMethod.GET)
public void test(@PathVariable String testvalue){
//you can use test value here
}
因此,变量值从URL中检索出来。
这是用于映射/处理动态URI的注释之一。您甚至可以为URI动态参数指定正则表达式,以仅接受特定类型的输入。
例如,如果检索使用唯一编号的书籍的URL如下:
URL:http://localhost:8080/book/9783827319333
可以使用@PathVariable获取URL末尾表示的数字,如下所示:
@RequestMapping(value="/book/{ISBN}", method= RequestMethod.GET)
public String showBookDetails(@PathVariable("ISBN") String id,
Model model){
model.addAttribute("ISBN", id);
return "bookDetails";
}
@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);
}
@PathVariable
注释用于在控制器端获取变量名称及其值。例如:www.abcd.com/api/value=34455&anotherValue=skjdfjhks,这里的**value**和**anotherValue**是变量,您可以使用@PathVariable("value") int value和@PathVariable("anotherValue")String anotherValue来获取它们。 - Aman Gupta