SpringMVC与Freemarker集成,配置项目全局的绝对路径

我发现网上这方面的相关内容不是很多(当然我学习的不是很深入)。
在开源中国上也发了一个贴子,有网友帮忙解答,下面附上解决方案,如果对大家有所帮助,我心甚慰!

首先定义一个类,继承FreeMarkerView。

import org.springframework.web.servlet.view.freemarker.FreeMarkerView;

import javax.servlet.http.HttpServletRequest;
import java.util.Map;

public class MyFreeMarkerView extends FreeMarkerView {

    private static final String CONTEXT_PATH = "base";

    @Override
    protected void exposeHelpers(Map<String, Object> model, HttpServletRequest request) throws Exception {
        model.put(CONTEXT_PATH, request.getContextPath());
        super.exposeHelpers(model, request);
    }
}

然后,springMVC配置文件中,加上关于Freemarker视图解析器的相关配置,如下:

<bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
    <!-- 自定义FreeMarkerView,用来定义项目的全局路径 -->
    <property name="viewClass" value="com.kyt.utils.MyFreeMarkerView" />
</bean>

这样就可以在ftl模板文件中,使用${base}获得项目路径了!

SpringMVC与Freemarker集成,配置项目全局的绝对路径,布布扣,bubuko.com

SpringMVC与Freemarker集成,配置项目全局的绝对路径

上一篇:Java Runtime.getRuntime().exec 执行带空格命令解决办法


下一篇:spring autowired时发生异常情况