:
pom.xml添加依賴
<!--thymeleaf整合JSP需要用到下面的依賴--> <dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf</artifactId> </dependency>
此時項目結構如下:
ViewResolverConfiguration類代碼:
package com.luzhanshi.springBootFrame.config; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.ViewResolver; import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import org.springframework.web.servlet.view.InternalResourceViewResolver; import org.thymeleaf.spring5.SpringTemplateEngine;//此處及下面兩行如果報錯,就是”spring5“版本不對,你可以點擊進去查看實際版本然后修改 import org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver; import org.thymeleaf.spring5.view.ThymeleafViewResolver; import org.thymeleaf.templateresolver.ITemplateResolver; /** * 主要配置多視圖實現的視圖解析器相關bean實例,將該視圖解析器注冊到容器中 * * 其實關鍵點在於兩個: * 1、配置order屬性:視圖解析器優先級問題(就是決定先使用哪個解析器來解析視圖) * 2、配置viewnames屬性(配置對應的視圖解析器解析哪些格式的視圖) */ @Configuration public class ViewResolverConfiguration { @Configuration//用來定義 DispatcherServlet 應用上下文中的 bean @EnableWebMvc public class WebConfig extends WebMvcConfigurerAdapter { //jsp頁面的視圖解析器,解析到webapp下的jsp/目錄下查找對應的jsp頁面 @Bean public ViewResolver viewResolver() { InternalResourceViewResolver resolver = new InternalResourceViewResolver(); resolver.setPrefix("/WEB-INF/jsp"); resolver.setSuffix(".jsp"); resolver.setViewNames("*");//這里是設置該視圖解析器所要匹配哪些格式的視圖“*”代表匹配所有格式“ resolver.setOrder(2);//優先級,Spring配置多個視圖解析器,數字越小,優先級越高,越先匹配 return resolver; } /** * 下面都是配置hymeleaf的視圖解析器相關的內容 * 對thymeleaf的視圖解析器,解析到webapp下的html目錄下查找對應的頁面 * @return */ @Bean public ITemplateResolver templateResolver() { SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver(); templateResolver.setTemplateMode("HTML5"); templateResolver.setPrefix("WEB-INF/"); templateResolver.setSuffix(".html"); templateResolver.setCharacterEncoding("utf-8"); templateResolver.setCacheable(false); return templateResolver; } @Bean public SpringTemplateEngine templateEngine() { SpringTemplateEngine templateEngine = new SpringTemplateEngine(); templateEngine.setTemplateResolver(templateResolver()); // templateEngine return templateEngine; } @Bean public ThymeleafViewResolver viewResolverThymeLeaf() { ThymeleafViewResolver viewResolver = new ThymeleafViewResolver(); viewResolver.setTemplateEngine(templateEngine()); viewResolver.setCharacterEncoding("utf-8"); viewResolver.setOrder(1);//設置該視圖解析器優先級為1 //下面是設置該視圖解析器所要匹配哪些格式的視圖"html/*", "vue/*","jsps/*","templates/*"代表匹配"html/*", "vue/*","jsps/*","templates/*"格式的所有視圖 viewResolver.setViewNames(new String[]{"html/*", "vue/*","jsps/*","templates/*"}); return viewResolver; } @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); } /** * 配置資源路徑 * @param registry */ // @Override // public void addResourceHandlers(ResourceHandlerRegistry registry) { // registry.addResourceHandler("/img/**").addResourceLocations("/img/"); // registry.addResourceHandler("/static/**").addResourceLocations("/WEB-INF/" + "/static/"); // } } }
properties文件thyemleaf配置的內容變化為:
# 模版存放路徑 #spring.thymeleaf.prefix=classpath:/templates/ spring.thymeleaf.prefix=/WEB-INF/html
html文件以及jsp文件的視圖路徑為:
:
:
最后訪問效果: