Spring boot Freemarker 获取ContextPath的两种方法:
1、自定义viewResolver,Spring boot中有一个viewResolver,这个和配置文件中的师徒解析器是一样的,但是spring boot不允许xml配置文件,所以可以写一个自定义的FreeMarker视图解析器。
@Configuration
@EnableWebMvc
public class MvcConfig extends WebMvcConfigurerAdapter {
@Bean
public FreeMarkerViewResolver freeMarkerViewResolver() {
System.out.println("MvcConfig.freeMarkerViewResolver()");
FreeMarkerViewResolver resolver = new FreeMarkerViewResolver();
resolver.setPrefix("");
resolver.setSuffix(".ftl");
resolver.setContentType("text/html; charset=UTF-8");
resolver.setRequestContextAttribute("request"); //ftl页面request
return resolver;
}
然后在.ftl文件中通过${request.contextPath}获取、
2、Spring boot自己提供的方法:内置方法。
${springMacroRequestContext.contextPath} //可以直接在ftl页面获取
3.springboot整合freemarker在配置文件中配置freemarker相应参数
application.yml配置文件:
spring
freemarker:
allow-request-override: false
cache: false #关闭缓存,及时刷新,上线生产环境需要修改为true
check-template-location: true
charset: UTF-8
content-type: text/html
expose-request-attributes: true
expose-session-attributes: true
request-context-attribute: request //ftl页面request
suffix: .ftl
templateEncoding: UTF-8
templateLoaderPath: classpath:/templates
expose-spring-macro-helpers: false
preferFileSystemAccess: false
标签: Spring boot, freemarker