@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 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; } };
/** * 自动扫描 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(Theme.class); resolver.registerFunctions(AdminCommons.class); resolver.registerTags(JetTag.class);
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; }
engine.getGlobalResolver().registerTags(JetWebTags.class);
engine.getGlobalResolver().registerTags(JetWebTags.class);