spring的官方默认推荐大家使用thymeleaf作为视图层的首选方案,但是作为老牌的javaweb视图技术,jsp也还算有这他的一些优势。虽然性能上有上影响,但是不开发大型网络应用,劣势也就不那么明显了。开始我自己也不知道怎么弄。百度了一通,各种尝试,就是没有找到适合我当前使用版本的解决方案,没办法,找不到现成的就自己琢磨咯。经过几番尝试,功夫没白费最终也是搞出来了。下面我就给各位来介绍一下,要使用jsp作为视图层,我们要做哪些事情和一些注意事项。
一、依赖
要使用jsp我们首先得在依赖中多增加两个内容:
<!-- jsp支持 --> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency>
一个是tomcat的jsp解析,一个是jstl的支持
注意:这里的jasper是必须的。jstl如果是简单测试不要也是可以的。
二、ViewResolvers视图配置
由于默认不支持jsp,所以要自己配置resolvers。
@Configuration @EnableWebMvc public class AppMvcConfigurer extends WebMvcConfigurerAdapter { /** * 视图解决方案配置 */ @Override public void configureViewResolvers(ViewResolverRegistry registry) { //配置jsp路径 registry.jsp("/WEB-INF/jsp/", ".jsp"); super.configureViewResolvers(registry); } @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); super.configureDefaultServletHandling(configurer); } }
注意:此处configureDefaultServletHandling必须得配置,不然所以的静态资源访问都会404.
最后注意:使用了jsp作为视图层后,原来的resources目录下面的static和templates目录就没有用了。
jsp页面就得挪动到webapp/WEB-INF/jsp目录下面。当boot项目,默认是没有WEB-INF目录的,这个没关系,我们自己创建出来就ok。
所以的静态文件,我们就直接放到webapp目录就ok。也就是原来需要放到statics目录的内容,都挪到webapp目录下就ok了。