Skip to content

Instantly share code, notes, and snippets.

@yanglikun
Created February 5, 2018 07:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yanglikun/ef3d612855765ecb2797384f11dcc5b8 to your computer and use it in GitHub Desktop.
Save yanglikun/ef3d612855765ecb2797384f11dcc5b8 to your computer and use it in GitHub Desktop.
freemarker 静态类调用
public class FreemarkerModelInterceptor implements HandlerInterceptor {
private static final Logger logger = LoggerFactory.getLogger(FreemarkerModelInterceptor.class);
private Map<String, String> utilClasses;
private TemplateHashModel staticModels;
public FreemarkerModelInterceptor() {
BeansWrapperBuilder builder = new BeansWrapperBuilder(Configuration.VERSION_2_3_26);
staticModels = builder.build().getStaticModels();
}
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws
Exception {
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView
modelAndView) throws Exception {
if (modelAndView != null && utilClasses != null && !utilClasses.isEmpty()) {
utilClasses.entrySet().stream().forEach(entry -> {
try {
modelAndView.addObject(entry.getKey(), (TemplateHashModel) staticModels.get(entry.getValue()));
} catch (TemplateModelException e) {
logger.error("添加freemarker工具类异常:" + entry.getValue(), e);
}
});
}
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception
ex) throws Exception {
}
public Map<String, String> getUtilClasses() {
return utilClasses;
}
public void setUtilClasses(Map<String, String> utilClasses) {
this.utilClasses = utilClasses;
}
}
配置:
<bean id="freemarkerModelInterceptor" class="com.jd.findsomeone.web.FreemarkerModelInterceptor">
<property name="utilClasses">
<map>
<entry key="stringUtils" value="org.apache.commons.lang3.StringUtils"></entry>
</map>
</property>
</bean>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<ref bean="freemarkerModelInterceptor"/>
</mvc:interceptor>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment