2013-01-16 44 views
1

我正在使用Spring MVC + Spring Security,我試圖實現分頁。 爲此,我修改了我的菜單中指向我要使用分頁的頁面的鏈接。無法通過URL傳遞參數使用<c:url>標籤

當用下面的代碼點擊我的菜單中的「列表」鏈接時,出現錯誤400:請求的資源不可用。

<li> 
    <a href="<c:url value="/list.htm" ><c:param name="page" value="1" /></c:url>">List 
    </a> 
</li> 

當添加參數的鏈接,而無需使用<c:param>,同樣的事情,錯誤400:

<li><a href="<c:url value="/list.htm?page=1" />">List</a></li> 

簡單地使用這個時候,不傳遞任何參數,該鏈接是否正常工作:

<li><a href="<c:url value="/list.htm" />">List</a></li> 

這裏是我的控制器相關的代碼:

@RequestMapping(value = "/list", method = RequestMethod.GET) 
    public String getEmployees(@RequestParam(value = "page", required = false) int page, ModelMap model) { 
     model.addAttribute("employees", this.employeeManager.getEmployees(page)); 
     return "list"; 
    } 

回答

2

嘗試使用通配符的以下請求映射。

@RequestMapping(value = "/list.htm*", method = RequestMethod.GET) 
    public String getEmployees(@RequestParam(value = "page", required = false) int page, ModelMap model) { 
     model.addAttribute("employees", this.employeeManager.getEmployees(page)); 
     return "list"; 
    } 

您也可以嘗試不帶通配符,但其中的.htm

@RequestMapping(value = "/list.htm", method = RequestMethod.GET) 
    public String getEmployees(@RequestParam(value = "page", required = false) int page, ModelMap model) { 
     model.addAttribute("employees", this.employeeManager.getEmployees(page)); 
     return "list"; 
    } 
+0

這工作就像一個魅力,謝謝:) – dukable

+0

@Dukable,高興我可以幫忙。您可能希望看到更新,您可能不需要通配符,'.htm'部分可能已經做了竅門 –

+0

它也適用於只添加.htm,沒有通配符時,再次感謝您:) – dukable

-1

在Spring控制器:

@RequestMapping(value = "/list.htm", method = RequestMethod.GET) 
public String funcName(@RequestParam(value = "page", required = false) int page){ 
return String; 
}