0

Ich habe viele Lösungen ausprobiert, aber es funktioniert einfach nicht. Ich verwende Intellij 2016.1. Ich kann die App nicht zum Auflösen von Vorlagen zwingen.Thymeleaf org.thymeleaf.exceptions.TemplateInputException: Fehler beim Auflösen der Vorlage

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.thymeleaf.exceptions.TemplateInputException: Error resolving template "/login/login", template might not exist or might not be accessible by any of the configured Template Resolvers 

Config

@Configuration 
@ComponentScan(basePackages = "com.unibooker") 
@EnableWebMvc 
public class Config extends WebMvcConfigurerAdapter{ 

@Bean 
public TemplateResolver templateResolver() { 
    ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver(); 
    templateResolver.setPrefix("classpath:/WEB-INF/templates/"); 
    templateResolver.setSuffix(".html"); 
    templateResolver.setTemplateMode("HTML5"); 

    return templateResolver; 
} 

@Bean(name = "templateEngine") 
public SpringTemplateEngine getTemplateEngine() 
{ 
    SpringTemplateEngine templateEngine = new SpringTemplateEngine(); 
    templateEngine.setTemplateResolver(this.templateResolver()); 
    templateEngine.setMessageSource(this.messageSource()); 
    templateEngine.addDialect(new LayoutDialect()); 

    return templateEngine; 
} 

@Bean 
public ViewResolver setupViewResolver() 
{ 
    ThymeleafViewResolver viewResolver = new ThymeleafViewResolver(); 
    viewResolver.setTemplateEngine(this.getTemplateEngine()); 
    viewResolver.setOrder(1); 

    return viewResolver; 
} 

@Bean 
public MessageSource messageSource() 
{ 
    ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource(); 
    messageSource.setBasename("messages"); 
    messageSource.setDefaultEncoding("UTF-8"); 
    messageSource.setCacheSeconds(3600); 

    return messageSource; 
} 

@Bean 
public LocaleResolver localeResolver() 
{ 
    CookieLocaleResolver resolver = new CookieLocaleResolver(); 
    resolver.setDefaultLocale(new Locale("pl")); 
    resolver.setCookieName("locale"); 
    resolver.setCookieMaxAge(86400); 

    return resolver; 
} 

@Override 
public void addInterceptors(InterceptorRegistry registry) 
{ 
    LocaleChangeInterceptor interceptor = new LocaleChangeInterceptor(); 
    interceptor.setParamName("locale"); 
    registry.addInterceptor(interceptor); 
} 

@Override 
public void addResourceHandlers(final ResourceHandlerRegistry registry) 
{ 
    registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); 
    registry.addResourceHandler("/resources/**").addResourceLocations("/resources/"); 
} 
} 

Project structure - IMAGE

Ich habe versucht, Vorlagen zu Ressourcen zu bewegen, aber immer noch nichts. Bitte helfen Sie. Ich habe keine Ideen mehr, wie ich das beheben kann ... Es hat früher funktioniert und dann aufgehört.

+0

gibt es einen Ordner mit dem Namen 'login' in' Vorlagen? –

Antwort

0

Thymoleaf Resolver wird unter templates/login/ für eine login.html Seite. Basierend auf Ihrer Projektstruktur und Konfiguration, haben Sie zu Recht einen login Ordner innerhalb der Vorlage, aber Sie haben keine login.html innerhalb des Verzeichnisses, weshalb der Grund für den Fehler.

Entweder erstellen Sie eine login.html im Login-Ordner oder verwenden Sie die index.html Seite, die bereits dort ist. In Ihrem Federregler sollten Sie die entsprechende Seite zurückgeben.

Zum Beispiel

Unter der Annahme, dass Sie zeigen müssen sollten die Anmeldeseite des Controllers Methode zurückzukehren,

return "login/login" // to display login.html under `templates/login` 

oder

return "login/index" // to display index.html under `templates/login` 
Verwandte Themen