您能否在春季mvc中使用@PathVariable
给我一个简短的解释和示例?请说明您如何输入网址?
我正在努力获得正确的网址来显示jsp页面。感谢。
答案 0 :(得分:198)
假设你想写一个网址来获取一些订单,你可以说
www.mydomain.com/order/123
其中123是orderId。
所以现在你将在spring mvc controller中使用的url看起来像
/order/{orderId}
现在可以将订单ID声明为路径变量
@RequestMapping(value = " /order/{orderId}", method=RequestMethod.GET)
public String getOrder(@PathVariable String orderId){
//fetch order
}
如果您使用网址www.mydomain.com/order/123,那么orderId变量将由弹簧值123填充
另请注意,PathVariable与requestParam不同,因为pathVariable是URL的一部分。
使用请求参数的相同网址看起来像www.mydomain.com/order?orderId=123
答案 1 :(得分:9)
查看下面的代码段。
@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;
}
希望它有助于构建代码。
答案 2 :(得分:5)
如果您有包含路径变量的url,例如www.myexampl.com/item/12/update,其中12是id,create是您要使用的变量,用于指定使用单个表单执行的intance执行更新和创建,您可以在控制器中执行此操作。
@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";
}
答案 3 :(得分:2)
@PathVariable
用于从网址
例如:提出一些问题
www.stackoverflow.com/questions/19803731
此处有些问题id
作为网址
现在要在controller
中获取此值,您只需要在方法参数中传递@PathVariable
@RequestMapping(value = " /questions/{questionId}", method=RequestMethod.GET)
public String getQuestion(@PathVariable String questionId){
//return question details
}
答案 4 :(得分:1)
注释,指示方法参数应绑定到URI模板变量。支持RequestMapping带注释的处理程序方法。
TemplateModel
答案 5 :(得分:0)
我们假设您点击了一个网址www.example.com/test/111。 现在你必须为你的控制器方法检索值111(这是动态的)。届时你将使用@PathVariable,如下所示:
@RequestMapping(value = " /test/{testvalue}", method=RequestMethod.GET)
public void test(@PathVariable String testvalue){
//you can use test value here
}
因此,从网址
中检索变量值答案 6 :(得分:0)
它是用于映射/处理动态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";
}
简而言之,只是在Spring中从HTTP请求中提取数据。
答案 7 :(得分:-2)
查看下面的代码段。
@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);
}
如果您希望完整项目查看其工作原理,请从以下链接下载: -