java webapp项目设置index.html为主页失败

1. 新建一个webapp,能够直接访问index.html。但是加上了springmvc之后就访问不到了,初步判断原因是在web.xml中将所有的请求(即/)都映射到了DispatcherServlet,导致无法访问静态资源。

 

2. 看了SpringMVC项目配置欢迎页面为index.html”后,知道应该设置一个IndexController,用于返回index.html。于是我先添加了一个Controller

@Controller
public class IndexController {
    @RequestMapping("/")
    public ModelAndView index () {
        return new ModelAndView("index.html");
    }
}

然后在springmvc-servlet.xml中添加访问静态资源的配置(新手看到这我要提醒一下,下面的标签只是最关键的部分,关于详细的如何访问静态资源的方法请自行百度):

<mvc:resources mapping="/*.html" location="/"/>

 

3.  继续报错,错误为:

 java webapp项目设置index.html为主页失败

错误信息说noHandlerFound,也就是意味着我的请求没有找到具体的Controller。于是我就看了一下配置文件,但似乎没问题。难道是在启动web项目的时候,没有读取到配置文件?(注意,服务器启动日志中并没有提示没有找到配置文件)

于是看web.xml中关于配置文件的标签:

java webapp项目设置index.html为主页失败

这个classpath*:是什么意思我还没了解,只是从网上复制过来的。于是百度,发现原来classpath代表着WEB-INF/classes目录,然后再对比我的项目结构:

java webapp项目设置index.html为主页失败

诶!好像是我的config目录放错位置了。于是把config目录移到classes目录下后,再重启,成功访问到index.html

 

4.还没完。我在添加IndexController的时候其实是加了一句Syetem.out.println(hello1)的,如下所示:

java webapp项目设置index.html为主页失败

但是我在访问index.html的时候,控制台并没有输出“hello1”,难道IndexController并没有起作用?遂删掉IndexController,重启并访问index.html,能够正常访问。

于是得出最后的结论——在web.xmlspringmvc-servlet.xml的路径错了。(这个真难找,因为服务器启动日志没有报错说找不到文件)。

java webapp项目设置index.html为主页失败

上一篇:如何在苹果Mac上启用自动解锁?


下一篇:MybaitsPlus使用BaseMapper执行insert语句,数据库出现两条一样的记录解决办法