2016-12-29 35 views
-1

大家好,我通常使用@PathVariable,但對於這種情況,我不知道爲什麼它不起作用。@PathVariable不適用於其中一種映射

引入了menu.jsp

<a href="<c:url value= '/admin/myCart/1/${idproducts}' />">Panier</a>  

控制器:

@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; 
} 

所以引入了menu.jsp得到{idproducts}(它是含有由 「/」 分隔ID的字符串,例如: idproducts = 5/6/7),但我不知道爲什麼@PathVariable("idproducts")不起作用。錯誤是:

沒有映射找到HTTP請求與URI [/ SpringMVCHibernate /管理/ myCart/5/6/7 /]

+0

難道一個產品授予ID是字符串 「5/6/7」?或者您是否試圖購買包含三種產品的5號,6號和7號產品的購物車? –

回答

0

你必須限定爲URL,

/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; 
} 
+0

Ouups ..對不起,這只是翻譯的問題,因爲我的代碼在frensh。現在我用英文編輯了所有內容。現在你可以檢查一下你是否能看到這個錯誤的來源? –

+0

@SalimLyoussi檢查我的更新答案。您需要在控制器方法的請求映射中定義/ 1。如果/ 1是動態的,那麼你需要定義多個路徑變量。 – ScanQR

相關問題