SpringMVC默认欢迎页面的问题
使用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(这个有 “/”)
相关推荐
JudeJoo 2020-08-21
meleto 2020-08-15
方志朋 2020-05-30
spring艳 2020-05-16
zhangdy0 2020-05-06
neweastsun 2020-05-04
牧场SZShepherd 2020-02-21
凯哥Java 2020-02-16
小鱿鱼 2020-02-14
牧场SZShepherd 2020-01-12
Julywhj 2020-01-11
lantingyue 2020-07-30
zyjj 2020-07-27
pengpengflyjhp 2020-07-19
htofly 2020-07-09
三动 2020-06-21
hyxinyu 2020-06-08
洗尽铅华 2020-06-07