今天收到了一份spring mvc的工程,看里面没有加controller,想着加个默认的Controller

一次@Controller引发的血案_Request

明眼人是不是一眼就看到问题所在了?

如果没有发现问题的,请跟着我的思路一起混乱下去

  1. 启动工程

    没报错,说明其他的结构没问题

  2. 打开浏览器,输入http://localhost:8080/XXXXX/login

    诶?没有正确显示页面?

  3. 开启混乱之旅

    1. 首先,最先想起的是component-scan的配置问题,因为这种情况居大多数,很可能路径匹配不一致

      但确认了一下,没问题,又仔细一个一个字母对比了一下,还是没问题

    2. 哎?难道是mappinghandler的使用有问题,没有使用annotation method的mappinghandler?

      仔细一看,没问题啊,是正确的:org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping

    3. 这是怎么回事呢难道是annotation-config没有开启?

      mvc配置中找了下,真没有欸?加上试试,还是不好使,这是为什么呢

      又看了下application.xml,哦其中已经加了annotation-config了,应该不是这个问题

    4. 这样会不会是requestmappinghandler用的有问题呢,换成default的试试?

      换了一下,换成mvc:annotation-driven,再尝试,还hi是不好用

    5. 不行了,不应该啊,整个过程就是扫描bean,handleMapping,我的controller已经加了requestMapping了啊,为什么不好用呢, 是不是工程设置有问题

      project -> properties 看了一下Java build path中的设定,诶?还是对啊,没错啊

      project -> properties 不信邪,又确认了一下project facets,还是对啊,是dynamic web module啊

    6. 这时候就有点蒙圈了,想不出来,百度吧,

      搜,“RequestMappingHandlerMapping 匹配不到” 没什么有意义的结果。。。

      等等等,搜了一大堆,搜到了一个在mapping中添加<property name="useSuffixPatternMatch" value="false"/>这个参数的

      试了一下,还是不好用

    7. 我靠,崩溃了啊,什么情况,扭曲了我的spring mvc观念啊

    8. 休息一下,去个厕所,冷静一下

    9. 回来后有确认了一边,还是没看出问题所在,接着寻求网络的帮助吧

      搜着搜着,突然之间看到一个网页,上面@controller被特别标注了

    10. 卧槽,我是不是没加controller,确认了一下,果然额,魔障了