@PathVariable并不适用于其中一个映射

时间:2016-12-29 01:25:55

标签: spring-mvc controller mapping path-variables

大家好我经常使用<a href="<c:url value= '/admin/myCart/1/${idproducts}' />">Panier</a> ,但对于这种情况,我不知道为什么它不起作用。

menu.jsp

@RequestMapping(value = "/admin/viewProduct/{ref}", method = RequestMethod.GET)
public String getProduit(@PathVariable("ref") int ref, Model model) {
**model.addAttribute("idproducts",this.orderedProductService.getIdOrderedProductsByclient(1));**
model.addAttribute("produit", this.produitService.getProduitById(ref));


    return "menu";
}

@RequestMapping(value= "/admin/monPanier/{idproducts}", method = RequestMethod.GET)
public String myCart( @PathVariable("idproducts") String idproducts,Model model) {
     return mycart;
}

控制器:

{idproducts}

所以 menu.jsp 获取@PathVariable("idproducts")(这是一个包含由&#34分隔的ID的字符串; /&#34;,例如:idproducts = 5/6/7) ,但我不知道为什么{{1}}不起作用。错误是:

  

找不到带URI的HTTP请求的映射[/ SpringMVCHibernate / admin / myCart / 5/6/7 /]

1 个答案:

答案 0 :(得分:0)

您将网址定义为

/admin/mycart/1/**${idproducts}**

但在controller中,没有使用/admin/mycart/1

定义此类映射

它定义为/admin/mycart

@RequestMapping(value= "/admin/mycart/{idproducts}", method = RequestMethod.GET)
public String monPanier( @PathVariable("idproducts") String idproducts,Model model) {
     return mycart;
}

因此,请尝试按以下方式修复controller

@RequestMapping(value= "/admin/mycart/1/{idproducts}", method = RequestMethod.GET)
    public String monPanier( @PathVariable("idproducts") String idproducts,Model model) {
         return mycart;
}