一次@Controller引发的血案

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一次@Controller引发的血案相关的知识,希望对你有一定的参考价值。

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

技术分享图片

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

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

  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,确认了一下,果然额,魔障了

以上是关于一次@Controller引发的血案的主要内容,如果未能解决你的问题,请参考以下文章

一次活动引发的血案

一次活动引发的血案

一次考试引发的血案---你能得几分?

转 由一次磁盘告警引发的血案:du 和 ls 的区别

记一次IDEA 打包环境JDK版本和生产环境JDK版本不一致引发的血案

记一次由tcp_tw_recycle参数引发的血案