无法使用<c:url>标记</c:url>通过URL传递参数

时间:2013-01-16 01:37:49

标签: spring spring-mvc spring-security jstl

我正在使用Spring MVC + Spring Security,我正在尝试实现分页。 为此,我修改了菜单中指向我要使用分页的页面的链接。

使用下面的代码单击菜单中的“列表”链接时,出现错误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 个答案:

答案 0 :(得分: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";
    }

答案 1 :(得分:-1)

在Spring Controller中:

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