Spring Boot Freemarker之获取contextPath

第一种:

在springboot的配置文件中,可以指定contextPath,如:

server:
  port: 8848
  servlet:
    #通用请求头,配合freemarker的request-context-attribute属性使用,通过${ctx.contextPath}获取该配置文件的上下文路径(也可以通过这种方式定义请求头)
    context-path: /

定义freemarker的配置:

freemarker:
    request-context-attribute: ctx

就可以通过${ctx.contextPath}获取了

使用如下:

$("#grid").jqGrid({
            postData: {},
            url: "${ctx.contextPath}/newProductOffer/getProductPriceHistoryTwiceBargain",
            colNames: [],
            colModel: [],
            rownumbers: true,
            rowNum: 50,//一页显示多少条
            rowList: [50, 100, 150],
            height: 200,
            auto true,
            pager: '#pager3',
            recordpos: 'left',
            shrinkToFit: true,
            autoScroll: false
        });

第二种:

也可以自定义:

@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");

        return resolver;

    }

}

添加以上的代码之后,就可以在x.ftl文件中使用${request.contextPath}了。