问题: 如何改mvc中项目的欢迎页,或者叫做根路径

一个东西快弄完了,就剩下一个问题,应该是个小问题。就是mvc项目的欢迎页,怎么给改下呢

访问根路径http://localhost/demo 怎么都访问不到webapp下index.html

 让其跳转到http://localhost:8080/demo/index


1. 缺省的流程


先看看缺省的根路径流程:

web.xml 中什么没有配置任何有关欢迎页的信息!其实这时等效于如下配置:这个会由Web容器最先访问!

欢迎页配置

<welcome-file-list>

<welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list>

servlet拦截配置

<servlet> <servlet-name>demo-servlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>demo-servlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>

而项目目录下,有个index.html文件,进行了跳转:

<html> <head>   <meta http-equiv="Refresh" content="0; URL=index/"> </head> </html>

按照上面的配置,使用jetty服务器没有生效,http://localhost/demo访问不到根目录下index.html 

然后尝试下面的步骤

2. 如何直接对根路径进行拦截

还是直接说流程吧:

必须在web.xml中加入如下:

<welcome-file-list>     <welcome-file>index.jsp</welcome-file> </welcome-file-list>

在web.xml中加入这段代码后发现并没有生效,不清楚原因,使用的是jetty7服务器,后来查了相关资料,发现有两种方式。


@RequestMapping("/")
public ModelAndView index() {
Map<String, Object> modelMap = new HashMap<String, Object>();
System.out.println("**********************");
/*
* modelMap.put("basPostTypeList",homeService.findBasPostTypeList());
* modelMap
* .put("busHotCompanyPostList",busHotCompanyPostService.getAllByOrderNum
* ());
*/
return new ModelAndView("index", modelMap);
}

或者,没有controller,只有view,也可以简化,在servlet的配置文件中加入:

<mvc:view-controller path="/" view-name="index"/>

如果同时都有。反正只会有一个起作用。一般是先扫描的起作用。谁会先扫描到,就是看和<mvc:annotation-driven />比较,谁在前面。

版权声明:本文为博主原创文章,未经博主允许不得转载。

posted on 2014-08-15 15:27  程序那些事  阅读(390)  评论(0编辑  收藏  举报
http://www.cnblogs.com/weiguo21/p/5191887.html