Как заставить обработчик шаблонов обрабатывать тимлиновые страницы из базы данных и файловой системы - PullRequest
1 голос
/ 04 июля 2019

Я создаю приложение Springboot, которое должно обрабатывать код тимили, который хранится в базе данных вместе с обычными страницами тимелиста, хранящимися в файловой системе. Мой вопрос: что лучше для этого подойдет?

Сначала я попытался создать два разных распознавателя и добавить их в шаблонизатор. Затем я попытался создать два отдельных шаблонизатора с отдельными определителями. Вторая попытка сработала, но я не думаю, что это правильный подход, потому что шаблон дорогой.

1-й

public SpringTemplateEngine engine() {
            SpringTemplateEngine engine = new SpringTemplateEngine();
            engine.addTemplateResolver(stringTemplateResolver());
                engine.addTemplateResolver(thymeleafTemplateResolver());
            return engine;
        }
@Bean
            public ClassLoaderTemplateResolver thymeleafTemplateResolver() {
             var resolver 
                  = new ClassLoaderTemplateResolver();
             resolver.setPrefix("templates/");
             resolver.setSuffix(".html");
             resolver.setTemplateMode(TemplateMode.HTML);
             resolver.setOrder(1);


              //  templateResolver.
                return resolver;
            }


         @Bean
        public StringTemplateResolver stringTemplateResolver() {
            var resolver = new StringTemplateResolver();
            resolver.setTemplateMode(TemplateMode.HTML);
            resolver.setCacheable(false);
            resolver.setOrder(2);
            return resolver;
        }

второй

public SpringTemplateEngine thymeleafEngine() {
            SpringTemplateEngine engine = new SpringTemplateEngine();
                engine.addTemplateResolver(thymeleafTemplateResolver());
            return engine;
        }
public SpringTemplateEngine dbEngine() {
            SpringTemplateEngine engine = new SpringTemplateEngine();
                engine.addTemplateResolver(stringTemplateResolver());
            return engine;
        }

для первой попытки я могу использовать одну или другую (основываясь на том, что я добавляю первой). Если я сначала добавлю тимилеф, он будет загружать обычную страницу в обычном режиме, но обработает тимелист из базы данных как путь, а не как содержимое, и наоборот. Чего я хочу добиться, так это иметь один механизм, который будет обрабатывать путь от контроллера в виде пути к файлу .html и обрабатывать содержимое строки из базы данных как фактическую страницу.

Спасибо за ваше время!

...