org.springframework.web.servlet.PageNotFound noHandlerFound - 发送参数时出错

时间:2014-08-23 11:21:38

标签: spring jsp servlets

我们有以下情况

    <a href="<c:url value="/inventory"/>">Example 1</a>
    <a href="<c:url value="/inventory/?type=removed"/>">Example 2</a>

控制器

    @RequestMapping(value = "inventory", method = RequestMethod.GET)
    public String printInventoryPage(
            ModelMap model,
            @RequestParam(value = "type", required = false) String type) {

        return "inventory";
    }

“示例1”效果很好,但是如果我点击“示例2”会产生这样的错误

org.springframework.web.servlet.PageNotFound noHandlerFound
WARNING: No mapping found for HTTP request with URI [/exampleproject/inventory/resources/js/jquery.js] in DispatcherServlet with name 'spring'

当然,错误适用于所有资源,如css,javascripts等。

除了任何网页,我使用<jsp:include page="header.jsp"/>

包含所有资源

可能是什么原因?

2 个答案:

答案 0 :(得分:1)

应该是

@RequestMapping(value = "/inventory", method = RequestMethod.GET)
public String printInventoryPage(...)

并在/

之前从JSP中的url中删除?
<a href="<c:url value="/inventory?type=removed"/>">Example 2</a>

答案 1 :(得分:1)

您在&#34; / inventory /?type = removed&#34;中的URI末尾添加了一个/。只需写&#34; / inventory?type = removed&#34;。

您将控制器方法映射到&#34; inventory&#34;。恕我直言,将它映射到&#34; / inventory&#34;会更正确。但&#34; / inventory /&#34;是另一个网址。

如果出于任何原因,您需要使用该方法来回答这两种方法,请按以下方式声明:

@RequestMapping(value = {"/inventory", "/inventory/"}, method = RequestMethod.GET)
public String printInventoryPage( ...