我发现网上这方面的相关内容不是很多(当然我学习的不是很深入)。
在开源中国上也发了一个贴子,有网友帮忙解答,下面附上解决方案,如果对大家有所帮助,我心甚慰!
首先定义一个类,继承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}获得项目路径了!