* JAVA-14723 Convert spring-mvc-basics-4 to Spring Boot project and update articles * JAVA-14723 Refactoring and remove unused files * JAVA-14723 remove the WEB-INF and migrate jsp to html * JAVA-14723 Add back the removed test and rename the test into: ArticleViewerControllerWithRequiredAttributeIntegrationTest --------- Co-authored-by: timis1 <noreplay@yahoo.com>
88 lines
2.8 KiB
Java
88 lines
2.8 KiB
Java
package com.baeldung.config;
|
|
|
|
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
|
|
import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Configuration;
|
|
import org.springframework.web.servlet.ViewResolver;
|
|
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
|
|
import org.springframework.web.servlet.view.InternalResourceViewResolver;
|
|
import org.springframework.web.servlet.view.JstlView;
|
|
import org.thymeleaf.spring5.SpringTemplateEngine;
|
|
import org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver;
|
|
import org.thymeleaf.spring5.view.ThymeleafViewResolver;
|
|
import org.thymeleaf.templatemode.TemplateMode;
|
|
import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver;
|
|
import org.thymeleaf.templateresolver.ITemplateResolver;
|
|
|
|
import com.baeldung.contexts.Greeting;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
/**
|
|
* Web Configuration for the entire app
|
|
*/
|
|
@Configuration
|
|
@EnableWebMvc
|
|
public class WebConfig {
|
|
|
|
@Bean
|
|
public WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> enableDefaultServlet() {
|
|
return factory -> factory.setRegisterDefaultServlet(true);
|
|
}
|
|
|
|
@Bean
|
|
public Greeting greeting() {
|
|
Greeting greeting = new Greeting();
|
|
greeting.setMessage("Hello World !!");
|
|
return greeting;
|
|
}
|
|
|
|
@Bean
|
|
public ObjectMapper objectMapper() {
|
|
return new ObjectMapper();
|
|
}
|
|
|
|
// Thymeleaf configuration
|
|
@Bean
|
|
public ViewResolver thymeleafViewResolver() {
|
|
|
|
ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
|
|
|
|
viewResolver.setTemplateEngine(thymeleafTemplateEngine());
|
|
viewResolver.setCharacterEncoding("UTF-8");
|
|
viewResolver.setOrder(0);
|
|
|
|
return viewResolver;
|
|
}
|
|
|
|
// Thymeleaf template engine with Spring integration
|
|
@Bean
|
|
public SpringTemplateEngine thymeleafTemplateEngine() {
|
|
|
|
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
|
|
templateEngine.setTemplateResolver(thymeleafTemplateResolver());
|
|
templateEngine.setEnableSpringELCompiler(true);
|
|
|
|
return templateEngine;
|
|
}
|
|
|
|
@Bean
|
|
public SpringResourceTemplateResolver springResourceTemplateResolver() {
|
|
return new SpringResourceTemplateResolver();
|
|
}
|
|
|
|
@Bean
|
|
public ITemplateResolver thymeleafTemplateResolver() {
|
|
|
|
ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();
|
|
|
|
templateResolver.setPrefix("/templates/");
|
|
templateResolver.setCacheable(false);
|
|
templateResolver.setSuffix(".html");
|
|
templateResolver.setTemplateMode(TemplateMode.HTML);
|
|
templateResolver.setCharacterEncoding("UTF-8");
|
|
|
|
return templateResolver;
|
|
}
|
|
}
|