-
-
Save NeilAlishev/11642fd955e22f4bf435ea43b32e0ddb to your computer and use it in GitHub Desktop.
@Configuration | |
@ComponentScan("ru.alishev.springcourse") | |
@EnableWebMvc | |
public class SpringConfig implements WebMvcConfigurer { | |
private final ApplicationContext applicationContext; | |
@Autowired | |
public SpringConfig(ApplicationContext applicationContext) { | |
this.applicationContext = applicationContext; | |
} | |
@Bean | |
public SpringResourceTemplateResolver templateResolver() { | |
SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver(); | |
templateResolver.setApplicationContext(applicationContext); | |
templateResolver.setPrefix("/WEB-INF/views/"); | |
templateResolver.setSuffix(".html"); | |
return templateResolver; | |
} | |
@Bean | |
public SpringTemplateEngine templateEngine() { | |
SpringTemplateEngine templateEngine = new SpringTemplateEngine(); | |
templateEngine.setTemplateResolver(templateResolver()); | |
templateEngine.setEnableSpringELCompiler(true); | |
return templateEngine; | |
} | |
@Override | |
public void configureViewResolvers(ViewResolverRegistry registry) { | |
ThymeleafViewResolver resolver = new ThymeleafViewResolver(); | |
resolver.setTemplateEngine(templateEngine()); | |
registry.viewResolver(resolver); | |
} | |
} |
@Khachatur-Khachatryan Спасибо! Важный комментарий. Можно много времени потерять выбрав импорт не того класса!
@Khachatur-Khachatryan Спасибо тебе большое за то что я не потратил слишком много времени на поиск ошибки в коде. Без этих импортов ничего не работало. Не поднималось приложение из-за "cannot access javax.servlet.servletexception"
Почему то не могу импортировать SpringResourceTemplateResolver ThymeleafViewResolver
в чем проблема?
Может ты просто зависимость не добавил
Spring6
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ViewResolverRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.thymeleaf.spring6.SpringTemplateEngine;
import org.thymeleaf.spring6.templateresolver.SpringResourceTemplateResolver;
import org.thymeleaf.spring6.view.ThymeleafViewResolver;
@Configuration
@ComponentScan("ru.fatkhullin.springcourse") //Поменяйте пакет на свой
@EnableWebMvc
public class SpringConfig implements WebMvcConfigurer {
private final ApplicationContext applicationContext;
@Autowired
public SpringConfig(ApplicationContext applicationContext) {
this.applicationContext = applicationContext;
}
@Bean
public SpringResourceTemplateResolver templateResolver() {
SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
templateResolver.setApplicationContext(applicationContext);
templateResolver.setPrefix("/WEB-INF/views/");
templateResolver.setSuffix(".html");
return templateResolver;
}
@Bean
public SpringTemplateEngine templateEngine() {
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
templateEngine.setTemplateResolver(templateResolver());
templateEngine.setEnableSpringELCompiler(true);
return templateEngine;
}
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
ThymeleafViewResolver resolver = new ThymeleafViewResolver();
resolver.setTemplateEngine(templateEngine());
registry.viewResolver(resolver);
}
}
я еще добавила в начале файла:
package ru.yourname.springcourse.config;
без этого была ошибка
Почему происходит ошибка "cannot access jakarta.servlet.ServletException class file"?
Скорее всего вы используете Apache Tomcat версии 10+.
В любом случае в Dependecies у Вас прописана зависимость для javax, в то время как проект хочет использовать jackarta.
Поменяйте:
javax.servlet javax.servlet-api 3.1.0 providedНа:
jakarta.servlet jakarta.servlet-api 6.0.0 provided@Boraldan, благодарю, помогло
Спасибо всем огромное за помощь я вам очень благодарен
Почему на запрос: http://localhost:8080/hello-world
Выдаёт:
HTTP Status 500 – Внутренняя ошибка сервера
???
Всё делал по урокам. И на предыдущем уроке через xml настройки такая же ерунда была.
на сегодняшний день рабочие зависимости:
spring.version - 6.2.0
thymeleaf-spring6 - 3.1.2.RELEASE
jakarta.servlet - 6.0.0
А также tomcat 10.1.34, openjdk - 22
Почему на запрос: http://localhost:8080/hello-world Выдаёт: HTTP Status 500 – Внутренняя ошибка сервера ??? Всё делал по урокам. И на предыдущем уроке через xml настройки такая же ерунда была.
Версия Thymeleaf Sping5 не может работать с современной версией Spring6, поменяй версию Thymeleaf - spring с 5 на 6 и заработаеет
Вы забыли добавить импорты
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.ViewResolverRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.thymeleaf.spring5.SpringTemplateEngine; import org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver; import org.thymeleaf.spring5.view.ThymeleafViewResolver;