public static TemplateHashModel generateStaticModel(String packageName) { try { TemplateHashModel staticModels = wrapper.getStaticModels(); TemplateHashModel fileStatics = (TemplateHashModel) staticModels.get(packageName); return fileStatics; } catch (Exception e) { e.printStackTrace(); } return null; }
private TemplateHashModel getStaticsModel(ObjectWrapper wrapper) { if (wrapper instanceof BeansWrapper) { return ((BeansWrapper) wrapper).getStaticModels(); } return BeansWrapper.getDefaultInstance().getStaticModels(); }
import freemarker.ext.beans.BeansWrapper; BeansWrapper w = new BeansWrapper(); TemplateHashModel statics = w.getStaticModels(); model.addAttribute("myVariable", statics);
public static void setUtilModel(Map modelMap) throws TemplateModelException { BeansWrapper wrapper = BeansWrapper.getDefaultInstance(); TemplateHashModel staticModels = wrapper.getStaticModels(); TemplateHashModel statics = (TemplateHashModel) staticModels.get(CodeGenerationUtils.class.getName()); modelMap.put("util", statics); }
/** * {@inheritDoc} */ @SuppressWarnings({"cast" }) public Object exec(List arguments) throws TemplateModelException { if (arguments != null && arguments.size() > 0) { BeansWrapper wrapper = BeansWrapper.getDefaultInstance(); TemplateHashModel staticModel = wrapper.getStaticModels(); return (TemplateHashModel) staticModel.get((String) arguments.get(0)); } return null; } }
protected static Map<String, Object> prepareParams(Map<String, ?> parameterValues) { Map<String, Object> parameterValuesWithStats = new HashMap<>(parameterValues); BeansWrapper beansWrapper = new BeansWrapperBuilder(Configuration.DEFAULT_INCOMPATIBLE_IMPROVEMENTS).build(); parameterValuesWithStats.put("statics", beansWrapper.getStaticModels()); @SuppressWarnings("unchecked") Map<String, Object> params = LazyMap.lazyMap(parameterValuesWithStats, propertyName -> { for (String appProperty : AppContext.getPropertyNames()) { if (appProperty.replace(".", "_").equals(propertyName)) { return AppContext.getProperty(propertyName); } } return null; }); return params; } }
private static void loadConfig(Map<String, String> resourceMap) throws Exception { config = new Configuration(Configuration.VERSION_2_3_26); TemplateLoader[] loaders = new TemplateLoader[] {}; for (Entry<String, String> resource : resourceMap.entrySet()) { String templateString = ""; InputStream is = FreemarkerConfiguration.class.getResourceAsStream(resource.getValue()); if (is != null) { templateString = IOUtils.toString(is); } else { templateString = FileUtils.readFileToString(new File(resource.getValue()), "UTF-8"); } StringTemplateLoader stringLoader = new StringTemplateLoader(); stringLoader.putTemplate(resource.getKey(), templateString); loaders = ArrayUtils.add(loaders, stringLoader); } MultiTemplateLoader multiLoader = new MultiTemplateLoader(loaders); config.setTemplateLoader(multiLoader); config.setDefaultEncoding("UTF-8"); config.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER); config.setLogTemplateExceptions(false); config.setAPIBuiltinEnabled(true); config.setURLEscapingCharset("UTF-8"); config.setLocale(Locale.US); BeansWrapperBuilder builder = new BeansWrapperBuilder(Configuration.VERSION_2_3_26); TemplateHashModel staticModels = builder.build().getStaticModels(); config.setSharedVariable("statics", staticModels); } private static Map<String, String> loadTemplatesFromResource(String configFile) throws IOException {
@SuppressWarnings("unchecked") public void postProcessConfiguration(Configuration config) throws IOException, TemplateException { TemplateHashModel statics = getBeansWrapper(config).getStaticModels(); Collection<ClassMetadata> allMetadata = sessionFactory.getAllClassMetadata().values(); for (ClassMetadata meta : allMetadata) { Class<?> mappedClass = meta.getMappedClass(); if (ActiveRecord.class.isAssignableFrom(mappedClass)) { String key = ClassUtils.getShortName(mappedClass); if (config.getSharedVariable(key) != null) { log.warn("Another shared variable with the name '{}'" + " already exist. Use statics[\"{}\"] in your" + " FreeMarker templates to access the static" + " methods of your ActiveRecord class.", key, mappedClass.getName()); } else { TemplateModel tm = statics.get(mappedClass.getName()); config.setSharedVariable(key, tm); } } } }
TemplateHashModel staticModels = FreeMarkerWorker.getDefaultOfbizWrapper().getStaticModels(); context.put("Static", staticModels);
TemplateHashModel staticModels = wrapper.getStaticModels(); newConfig.setSharedVariable("Static", staticModels); try {