private GlobalResolver doCreateGlobalResolver() { log.debug("Initializing global resolver ..."); GlobalResolver resolver = new GlobalResolver(); resolver.importClass("java.lang.*"); resolver.importClass("java.util.*"); for (String className : config.getImportClasses()) { resolver.importClass(className); } resolver.registerMethods(JetMethods.class); for (String className : config.getImportMethods()) { resolver.registerMethods(className); } resolver.registerFunctions(JetFunctions.class); for (String className : config.getImportFunctions()) { resolver.registerFunctions(className); } resolver.registerTags(JetTags.class); for (String className : config.getImportTags()) { resolver.registerTags(className); } List<String> packageNames = config.getAutoscanPackages(); if (!packageNames.isEmpty()) { resolver.scan(packageNames, config.isAutoscanSkiperrors()); } return resolver; }
private void doLoadGlobalMacroFiles() { List<String> macroFiles = config.getImportMacros(); for (String file : macroFiles) { JetTemplate template = getTemplate(file); globalResolver.registerMacros(template); } }
/** * 自动扫描 annotation */ public void scan(List<String> packageNames, boolean skipErrors) { //@formatter:off @SuppressWarnings("unchecked") List<Class<? extends Annotation>> annotations = Arrays.asList( JetAnnotations.Methods.class, JetAnnotations.Functions.class, JetAnnotations.Tags.class ); //@formatter:on log.info("Scanning @JetMethods, @JetFunctions, @JetTags implements from " + packageNames + " ..."); long ts = System.currentTimeMillis(); Set<Class<?>> classes = ClassFinder.getClasses(packageNames, true, annotations, skipErrors); log.info("Found {} annotated classes, time elapsed {} ms.", classes.size(), System.currentTimeMillis() - ts); for (Class<?> cls : classes) { for (Annotation anno : cls.getAnnotations()) { if (anno instanceof JetAnnotations.Methods) { registerMethods(cls); } else if (anno instanceof JetAnnotations.Functions) { registerFunctions(cls); } else if (anno instanceof JetAnnotations.Tags) { registerTags(cls); } } } }
resolver.registerFunctions(Commons.class); resolver.registerFunctions(Theme.class); resolver.registerFunctions(AdminCommons.class); resolver.registerTags(JetTag.class);
@Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { if (bean != null && bean.getClass() == JetTemplateViewResolver.class) { JetEngine engine = ((JetTemplateViewResolver) bean).getJetEngine(); // 注册Tags engine.getGlobalResolver().registerTags(SpringedTags.class); } return bean; } };
@Override public void load(Blade blade) { // 使用 gson 作为 JSON 支持 JsonKit.jsonSupprt(new GsonSupport()); DBUtils.importSql(blade.devMode()); Anima.open(DBUtils.DB_SRC); JetbrickTemplateEngine templateEngine = new JetbrickTemplateEngine(); templateEngine.getGlobalResolver().registerFunctions(TemplateExt.class); blade.templateEngine(templateEngine); // 初始化主题、全局变量信息 Option theme = select().from(Option.class).where(Option::getKey, CURRENT_THEME).one(); if (null != theme) { IndexController.THEME_NAME = theme.getValue(); } List<Option> all = select().from(Option.class).all(); if (null != all) { GLOBAL_CONFIG = all.stream().collect(toMap(Option::getKey, (Option::getValue))); } payApi = PayApi.getPayApi(GLOBAL_CONFIG.get(SAFE_PLATFORM)); }
public JetTemplateRenderFactory() { engine = JetWebEngine.create(JFinal.me().getServletContext()); engine.getGlobalResolver().registerGetterResolver(new JFinalActiveRecordGetterResolver()); }
engine.getGlobalResolver().registerFunctions(JetWebFunctions.class); engine.getGlobalResolver().registerTags(JetWebTags.class);
@Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { if (bean != null && bean.getClass() == JetTemplateViewResolver.class) { JetEngine engine = ((JetTemplateViewResolver) bean).getJetEngine(); // 注册Tags engine.getGlobalResolver().registerTags(SpringedTags.class); } return bean; } };
engine.getGlobalResolver().registerFunctions(JetWebFunctions.class); engine.getGlobalResolver().registerTags(JetWebTags.class);