SpringMVC中請求訪問不到Controller類
時間: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"/>
其中 com.kj.ctrl 是我放springMVC 的 Controller類(控制器類) 的包
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>
4.在你配置的檢視解析器裡的路徑下沒有你要訪問的檔案!
例如我要訪問的檔案是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://bbs.csdn.net/topics/390401966
我很悲催,是手誤了!!!找了好幾天!!!
希望大家平時心細些,不要犯我這種低階錯誤!!!
小生初來乍到,只是把自己的錯誤拿出來給大家借鑑一下,若有不對的地方,請大家指正!