时间:2017-02-18
继上个问题之后,又遇到了一个奇葩的问题,就是继承好了的SSM中的springMVC,发送的请求不经过Controller类直接报404错误,错误日志如下
[WARN ] 2017-02-18 15:27:50,202 method:org.springframework.web.servlet.DispatcherServlet.noHandlerFound(DispatcherServlet.java:1139)
No mapping found for HTTP request with URI [/JNCityScenicSpot/hello] in DispatcherServlet with name 'spring-mvc'
1.web.xml的配置文件里的<url-pattern>/*</url-pattern>
<servlet-mapping>
<servlet-name>spring-mvc</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
改为
<url-pattern>/</url-pattern>
<servlet-mapping>
<servlet-name>spring-mvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
2.Spring的配置文件 applicationContext.xml 里没有加入自动扫面注解包的配置
配置如下
<context:component-scan base-package="com.kj.ctrl"/>
3.Spring的配置文件 applicationContext.xml 里没有配置视图解析器
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/pages/" />
<property name="suffix" value=".jsp" />
</bean>
例如我要访问的文件是hello.jsp。但是在/WEB-INF/pages这个路径下,没有hello.jsp。这时也会报这个错误。
5.在你写的Controller类(控制器类)的@RequestMapper(path="hello") 的请求不对。
假如你要请求的是helle,但是你写的是hello springMVC找不到,所以……
总之,springMVC很奇葩,访问的路径或访问的页面不对(这里的不对包括不存在,名字写错)的话,他就会报404.
6.其他:
1.手误打错名字。这里可能会错现在任何地方,需要你细心找。一般是配置文件里起名字啊,引用参数啊之类!
2.没加有关jar包。我看有人说加了jackson的有关jar包就搞好的
3.没有加有关的命名空间
4.这个有点难发现。一般项目是复制的要小心了,文件的项目名和布署名不一致。
右键项目==》Properties ==》Web Project Settings ==>修改成你的项目名即可。
参考:http://www.cnblogs.com/modouer/p/5880539.html
还有很多,具体的可以去这里看看 http://bbs.csdn.net/topics/390401966
我很悲催,是手误了!!!找了好几天!!!
希望大家平时心细些,不要犯我这种低级错误!!!
小生初来乍到,只是把自己的错误拿出来给大家借鉴一下,若有不对的地方,请大家指正!