1 编写FreemarkerConfig
@Configuration
public class FreemarkerConfig {
@Autowired
protected FreeMarkerViewResolver freeMarkerViewResolver;
@PostConstruct
public void setStaticModels() {
FreemarkerStaticModels staticModels = FreemarkerConfig.FreemarkerStaticModels.getInstance();
staticModels.setStaticModels("LocaleUtil", LocaleUtil.class.getName());
freeMarkerViewResolver.setAttributesMap(staticModels);
}
static class FreemarkerStaticModels extends HashMap<String, Object> {
private static FreemarkerStaticModels FREEMARKER_STATIC_MODELS;
private FreemarkerStaticModels() {
}
public static FreemarkerStaticModels getInstance() {
if (FREEMARKER_STATIC_MODELS == null) {
FREEMARKER_STATIC_MODELS = new FreemarkerStaticModels();
}
return FREEMARKER_STATIC_MODELS;
}
void setStaticModels(String key, String value) {
FREEMARKER_STATIC_MODELS.put(key, useStaticPackage(value));
}
static TemplateHashModel useStaticPackage(String packageName) {
try {
BeansWrapper wrapper = BeansWrapper.getDefaultInstance();
TemplateHashModel staticModels = wrapper.getStaticModels();
return (TemplateHashModel) staticModels.get(packageName);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
}
2 模板中调用
${LocaleUtil.getLocale()}