平时都好用的百度 没搜索到直接的解决方案,查阅资料提供一种方案 实验可行
废话不多说
上图项目index.html位置 至于为什么将资源放在WEB-INF目录下 是不是更安全?
如果你怎么也访问不到 ,不妨试试我想到的方法
这是我的控制器写法 直接request对象转发进入WEB-INF目录
@Controller
public class IndexController {
private static final Logger log = LoggerFactory.getLogger(IndexController.class);
@RequestMapping(value = "/index")
public void index(HttpServletRequest request, HttpServletResponse response) {
log.info("首页");
try {
request.getRequestDispatcher("/WEB-INF/index.html").forward(request, response);
return;
} catch (ServletException | IOException e) {
e.printStackTrace();
}
}
}
但是这样配置会发现没有用?!我猜测可能是.html后缀被DispatcherServlet拦截了
视图解析器前后缀我尝试了 没成功 我再试试
直接上解决方案:开启DefaultServlet来放行.html后缀 不知道我的理解对不对
为了醒目起见 最重要一点 这个配置类需要能被扫描到 意思是这个类需要在启动类同一个包或者子包下 例如:
启动类在com.xxx.yyy下那这个类如果不开启扫描 路径Wiecom.xxx.yyy............MyWebMvcConfig就可以直接使用了
@Configuration
@EnableWebMvc
public class MyWebMvcConfig extends WebMvcConfigurerAdapter{
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}