Spring MVC 出现 Did not find handler method for [uri] 可能的解决方法

在做SpringMVC 测试时发现在配置完全正确

0.相关JAR包完全导入,Tomcat启动完全成功

1.配置有扫描

 <!-- 处理静态资源 -->
    <mvc:default-servlet-handler/>
    <!--
    Configures the annotation-driven Spring MVC Controller programming model.
	Note that this tag works in Web MVC only, not in Portlet MVC!

	See org.springframework.web.servlet.config.annotation.EnableWebMvc javadoc for details
	on code-based alternatives to enabling annotation-driven Spring MVC support.
    -->
    <mvc:annotation-driven />
    <!-- 配置包扫描器,扫描@Controller注解的类 -->
    <context:component-scan base-package="com.taotao.controller.*"/>

2.在注解生效,且相应处理该次请求的Controller 已经被实例化(通过重写构造方法发现)

3.相关方法有RequestMapping注解(method字段与对应请求方式相符合)

    @RequestMapping(value = "/item/cat/list", method = {RequestMethod.POST})
    @ResponseBody
    public List<EasyUITreeNode> list(@RequestParam(value = "id", defaultValue = "0") long parentId) {
        System.out.println("进入了这个方法");
        return itemCatService.listCat(parentId);
    }

4. 相应控制器上看看有没有 @RequestMapping 注解,有并在其中写上了相应uri路劲(如果你的控制器没有写上,而是写成了@Controller("/item/cat")  那么肯定是失败的,我就是心急没注意看到了这一步就解决了)

看看是不是


后端出现的错误:

2017-08-31 21:50:18,895 [http-bio-8080-exec-3] DEBUG [org.springframework.web.servlet.DispatcherServlet] - DispatcherServlet with name 'spring-mvc' processing GET request for [/item/cat/list]
2017-08-31 21:50:18,895 [http-bio-8080-exec-3] DEBUG [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping] - Looking up handler method for path /item/cat/list
2017-08-31 21:50:18,896 [http-bio-8080-exec-3] DEBUG [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping] - Did not find handler method for [/item/cat/list]
2017-08-31 21:50:18,896 [http-bio-8080-exec-3] DEBUG [org.springframework.web.servlet.handler.SimpleUrlHandlerMapping] - Matching patterns for request [/item/cat/list] are [/**]
2017-08-31 21:50:18,896 [http-bio-8080-exec-3] DEBUG [org.springframework.web.servlet.handler.SimpleUrlHandlerMapping] - URI Template variables for request [/item/cat/list] are {}
2017-08-31 21:50:18,896 [http-bio-8080-exec-3] DEBUG [org.springframework.web.servlet.handler.SimpleUrlHandlerMapping] - Mapping [/item/cat/list] to HandlerExecutionChain with handler [org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler@1697861] and 1 interceptor
2017-08-31 21:50:18,896 [http-bio-8080-exec-3] DEBUG [org.springframework.web.servlet.DispatcherServlet] - Last-Modified value for [/item/cat/list] is: -1
2017-08-31 21:50:18,896 [http-bio-8080-exec-3] DEBUG [org.springframework.web.servlet.DispatcherServlet] - Null ModelAndView returned to DispatcherServlet with name 'spring-mvc': assuming HandlerAdapter completed request handling
2017-08-31 21:50:18,896 [http-bio-8080-exec-3] DEBUG [org.springframework.web.servlet.DispatcherServlet] - Successfully completed request


页面出现的错误:

HTTP Status 404 - /item/cat/list

type Status report
message /item/cat/list
description The requested resource is not available.


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: “did not find handler method for” 的意思是“没有找到处理程序方法”。这通常是因为程序中缺少相应的处理程序方法或者处理程序方法的名称或参数不正确。需要检查程序代码并修复错误。 ### 回答2: "Did not find handler method for"是指在调用某个接口时,系统没有找到相应的处理方法。在使用Spring MVC框架时,通常会在控制器中定义一些处理方法handler method),用于响应用户请求。如果在调用接口时,系统无法找到对应的处理方法,就会抛出"Did not find handler method for"的异常。 造成这种异常的原因可能有几种。首先,可能是因为请求的URL路径与控制器中定义的路径不符合。例如,请求的路径是"/user/add",但控制器中定义的路径是"/user/register",导致系统无法找到相应的处理方法。 其次,可能是因为请求的HTTP方法与控制器中定义的方法不一致。例如,控制器中定义的方法是POST方法,但实际请求使用了GET方法,导致系统找不到相应的处理方法。 最后,可能是因为控制器中没有定义与请求对应的处理方法。在使用Spring MVC框架时,控制器中定义的处理方法需要与请求的路径和HTTP方法对应。如果控制器中没有定义与请求对应的处理方法,就会抛出"Did not find handler method for"异常。 为了解决这种异常,我们可以做以下几点: 1.检查请求的路径和HTTP方法是否与控制器中定义的处理方法对应。 2.检查控制器中是否定义了与请求对应的处理方法。如果没有定义,需要在控制器中添加相应的方法。 3.检查请求是否符合业务逻辑。如果请求不符合要求,需要调整请求参数或重新设计请求接口。 通过以上措施,我们就可以避免"Did not find handler method for"异常的发生,并保证系统的稳定性和可靠性。 ### 回答3: "Did not find handler method for"是一个错误的提示,通常是由于在编写代码时没有正确设置请求映射或请求参数的原因引起的。在Web应用程序中,处理程序方法负责处理特定HTTP请求,并返回相应的响应。 例如,在Spring MVC中,控制器类的每个方法都应该与一个@RequestMapping注释相关联,以便当请求到达时可以正确地调用该方法。如果没有设置正确的请求映射,则会出现“did not find handler method for”错误。 此外,还可能会发生请求参数不匹配的情况。如果请求中包含的参数与方法的参数不匹配,则无法正确调用处理程序方法,从而导致“did not find handler method for”错误。 解决此错误的方法是仔细检查代码,并确保已正确设置请求映射和请求参数。还可以启用调试模式,以便更轻松地诊断错误并定位问题。在处理程序方法中添加日志记录器也是一种有效的方法,可以记录请求和响应详细信息,以便更好地理解问题。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值