码迷,mamicode.com
首页 > 其他好文 > 详细

Srping Boot FreeMarker获取ContextPath-自定义ViewResolver以及超简单内置方法

时间:2016-06-15 14:20:48      阅读:12391      评论:0      收藏:0      [点我收藏+]

标签:

最近想用spring boot+freemarker做个新项目,在学习的过程中有一个地方真是把我坑惨了。那就是contextPath的获取。这个之前在jsp里实在是太简单了,然后我以为在ftl中也一样(最终结果告诉我确实也一样),但是中间的过程实在有点,,浪费时间。

不过还好自己尝试加上搜索解决了这个问题。有两个方法:

一,自定义ViewResolver

百度freemarker + contextPath,大多数人都会告诉你在配置文件中配置

 <property name="requestContextAttribute" value="request"/>

 然后页面:

${request.contextPath}

 就可以了。说起来这个确实是正确的方法,但是spring boot没有配置文件。。这要往哪儿改。经过一番艰苦卓绝的百度,我知道了ViewResolver这个东西,这个和配置文件中的配置视图解析器功能是一样的。于是就依葫芦画瓢,写了一个自定义的FreeMarker视图解析器,照着上面给的教程写了一下:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver;

/**
 * Created by zhangpeng on 16-6-15.
 */
@Configuration
@EnableWebMvc
public class MvcConfig extends WebMvcConfigurerAdapter {
    @Bean
    public FreeMarkerViewResolver freeMarkerViewResolver() {
        FreeMarkerViewResolver resolver = new FreeMarkerViewResolver();
        resolver.setPrefix("");
        resolver.setSuffix(".ftl");
        resolver.setContentType("text/html; charset=UTF-8");
        resolver.setRequestContextAttribute("rc");
        return resolver;
    }
}

 然后在ftl中:

${rc.contextPath}

 完美解决。

注意一定要是FreeMarkerViewResolver,不能是其他,不然没有用。

 

二,spring自己提供的方法

 

说起这个真是泪流满面啊,方法一折腾了半天,虽然最终也解决了,但是感觉也挺啰嗦的。

然后我在idea里面的ftl页面中随便打了打,看看有没有什么提示,结果提示了有springMacroRequestContext这个内置对象。其实我也不知道这是什么玩意儿,就输入了个.想看看会有什么属性和方法。悲剧来了,智能提示的第一个就是contextPath。。。

合着我辛辛苦苦搞了半天,你这自己内置的就有啊!!真是一万匹草泥马飘过。。。

${springMacroRequestContext.contextPath}

 就是这一句,可以直接获取到contextPath,不用任何设置。为什么网上从来没人说过呢。。。

 

Srping Boot FreeMarker获取ContextPath-自定义ViewResolver以及超简单内置方法

标签:

原文地址:http://www.cnblogs.com/csonezp/p/5587044.html

(1)
(12)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!