使用SpringMVC很長時間,一直有個問題沒有搞定,就是web.xml中默認歡迎頁面轉向控制器的問題。
由於答應朋友明天要交個網站,他們對默認頁面有這樣的要求,並且最好也別用js等等的跳轉;所以今天請教了一下jinnianshilongnian 也看了他的一些文章學了不少東西,但是和項目里面的配置方式有寫差異所以並不能完美的實現。找了寫資料研究了一下servlet方面的東西,發現了另外一個替代解決方案,東西不算太高深,留個備忘。
之前的SpingMVC配置控制器的代碼
- <!-- 默認首頁定義 -->
- <welcome-file-list>
- <welcome-file>/index.html</welcome-file>
- </welcome-file-list>
- <!-- 配置SpringMVC參數 -->
- <servlet>
- <servlet-name>StrongGXT</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <init-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>/WEB-INF/applicationMVC.xml</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>StrongGXT</servlet-name>
- <url-pattern>*.mvc</url-pattern>
- </servlet-mapping>
問題的由來:
welcome-file-list一般情況下只能使用靜態網頁,如果非要把他配置成SpringMVC的控制器URL就會報錯
解決的方法:
仔細看了一些資料,發現welcome-file-list可以轉向到servlet,但是!!!前提是servlet不能有擴展名,否則就當成靜態文件處理了,那么這樣的話就嘗試了定義個沒有擴展名的SpringMVC控制器URL。修改配置文件如下:
- <!-- 默認首頁定義 -->
- <welcome-file-list>
- <welcome-file>index</welcome-file>
- </welcome-file-list>
- <!-- 配置SpringMVC參數 -->
- <servlet>
- <servlet-name>StrongGXT</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <init-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>/WEB-INF/applicationMVC.xml</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>StrongGXT</servlet-name>
- <url-pattern>/index</url-pattern>
- </servlet-mapping>
- <servlet-mapping>
- <servlet-name>StrongGXT</servlet-name>
- <url-pattern>*.mvc</url-pattern>
- </servlet-mapping>
注意:welcome-file-list配置的是沒有 / 的 index,下面為SpringMVC控制器單獨注冊了一個 /index 的URL(這個有 “/”)