1. 程式人生 > >SpringMVC中請求訪問不到Controller類

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'
經過上百度,上CSDN搜,發生這種問題的原因一般有以下幾個:(我的Spring的配置檔案叫applicationContext.xml。提前給大家說一下)

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

我很悲催,是手誤了!!!找了好幾天!!!

希望大家平時心細些,不要犯我這種低階錯誤!!!

小生初來乍到,只是把自己的錯誤拿出來給大家借鑑一下,若有不對的地方,請大家指正!