Я пытаюсь настроить собственный класс Template для MarkupTemplateEngine
в Spring Boot, который позволяет писать шаблоны в Groovy. Моя конфигурация довольно проста:
@Configuration
class TemplateConfiguration {
@Bean
public GroovyMarkupConfig groovyMarkupConfigurer() {
new GroovyMarkupConfigurer().tap {
resourceLoaderPath = 'classpath:/templates/'
baseTemplateClass = MainTemplate
}
}
}
При изменении resourceLoaderPath
на несуществующий путь я получаю ошибку 404, которая показывает, что эта конфигурация загружена правильно. Однако при использовании setBaseTemplateClass(Class<? extends BaseTemplate>)
, как в приведенном выше фрагменте, я получаю следующую ошибку:
org.codehaus.groovy.runtime.typehandling.GroovyCastException:
Cannot cast object
'org.springframework.web.servlet.view.groovy.GroovyMarkupConfigurer@111bb71a'
with class 'org.springframework.web.servlet.view.groovy.GroovyMarkupConfigurer'
to class 'TemplateConfiguration'
Понятия не имею, почему возникает эта ошибка. Мой пользовательский класс Template выглядит так:
abstract class MainTemplate extends BaseTemplate {
MainTemplate(MarkupTemplateEngine templateEngine, Map model, Map<String, String> modelTypes,
TemplateConfiguration configuration) {
super(templateEngine, model, modelTypes, configuration)
}
void doctype() {
yieldUnescaped '<!DOCTYPE html>'
}
}