问题: 如何改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 />比较,谁在前面。
版权声明:本文为博主原创文章,未经博主允许不得转载。