首页 > 代码库 > SpringMVC与Freemarker集成,配置项目全局的绝对路径

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=http://www.mamicode.com/"com.kyt.utils.MyFreeMarkerView" />> 

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