浏览 8510 次
锁定老帖子 主题:SpringMVC默认欢迎页面的问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-04-18
使用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(这个有 “/”)
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-05-21
假如需要只输入根路径自动跳转到index.html应该怎么做呢
比如输入http://www.xxx.com 自动转成http://www.xxx.com/index.html |
|
返回顶楼 | |
发表时间:2012-05-22
smilease 写道 假如需要只输入根路径自动跳转到index.html应该怎么做呢
比如输入http://www.xxx.com 自动转成http://www.xxx.com/index.html 如果是跳转的话,用js或者转向都可以,我上面的意思是不跳转而直接打开指定的action |
|
返回顶楼 | |
发表时间:2012-05-22
simen_net 写道 smilease 写道 假如需要只输入根路径自动跳转到index.html应该怎么做呢
比如输入http://www.xxx.com 自动转成http://www.xxx.com/index.html 如果是跳转的话,用js或者转向都可以,我上面的意思是不跳转而直接打开指定的action 我说的也不是跳转,比如本来输入http://www.xxx.com/index.html会调用LoginAction,现在要改成输入http://www.xxx.com/就直接调用LoginAction |
|
返回顶楼 | |
发表时间:2012-05-22
smilease 写道 simen_net 写道 smilease 写道 假如需要只输入根路径自动跳转到index.html应该怎么做呢
比如输入http://www.xxx.com 自动转成http://www.xxx.com/index.html 如果是跳转的话,用js或者转向都可以,我上面的意思是不跳转而直接打开指定的action 我说的也不是跳转,比如本来输入http://www.xxx.com/index.html会调用LoginAction,现在要改成输入http://www.xxx.com/就直接调用LoginAction 我在1楼写的方法就是实现你这个要求的 |
|
返回顶楼 | |
发表时间:2013-01-06
楼主方法好使,我也正犯愁呢,看到楼主方法算是解决了
|
|
返回顶楼 | |
发表时间:2013-01-27
只要把webmvc-config.xml中的<mvc:view-controller path="/" view-name="index"/>去掉,然后直接加一个控制器,把它map到"/"路径,就可以访问这个默认首页控制器了
|
|
返回顶楼 | |