用静态 HTML 页面玩 Spring Boot + MVC,同时注意到这个东西:
首先,我有什么:
索引控制器:
@Controller
public class IndexController {
@RequestMapping("/")
public String index() {
return "index.html";
}
@RequestMapping("/{path:[^\\.]+}/**")
public String forward() {
return "forward:/";
}
}
Html 文件是:...\src\main\resources\static\index.html
所以当我的主要应用程序类是:
@SpringBootApplication
public class MyApplication extends WebMvcConfigurerAdapter {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
一切正常,默认路径:localhost:8080\
我得到index.html
页面内容
但是如果我用注释 Application 类@EnableWebMvc
@SpringBootApplication
@EnableWebMvc
public class MyApplication extends WebMvcConfigurerAdapter {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
我得到了例外:javax.servlet.ServletException: Could not resolve view with name 'index.html' in servlet with name 'dispatcherServlet'
但根据this spring doc,这是一个有效的配置。
也许有人可以解释我为什么?我理解错了吗?