package com.hongqiang.shop.common.template;
import java.io.IOException;
import java.util.Map;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import com.hongqiang.shop.common.interceptor.ExecuteTimeInterceptor;
import freemarker.core.Environment;
import freemarker.template.TemplateDirectiveBody;
import freemarker.template.TemplateException;
import freemarker.template.TemplateModel;
@Component("executeTimeDirective")
public class ExecuteTimeDirective extends BaseDirective {
private static final String EXECUTE_TIME = "executeTime";
@SuppressWarnings("rawtypes")
public void execute(Environment env, Map params, TemplateModel[] loopVars,
TemplateDirectiveBody body) throws TemplateException, IOException {
RequestAttributes localRequestAttributes = RequestContextHolder
.currentRequestAttributes();
if (localRequestAttributes != null) {
Long localLong = (Long) localRequestAttributes.getAttribute(
ExecuteTimeInterceptor.EXECUTE_TIME_ATTRIBUTE_NAME, 0);
if (localLong != null)
setFreemarker(EXECUTE_TIME, localLong, env, body);
}
}
}