在Spring Boot中,我们可以使用ThymeleafViewResolver
的addStaticVariable
方法来添加全局变量,这些全局变量可以在所有的Thymeleaf模板中直接使用,而不需要在每个视图控制器中重复定义。
以下是一个简单的例子,展示如何在Spring Boot应用程序中添加全局变量:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.thymeleaf.spring5.view.ThymeleafViewResolver;
import org.thymeleaf.extras.javaexamples.dialect.JavaExamplesDialect;
@Configuration
public class ThymeleafConfig {
@Bean
public ThymeleafViewResolver viewResolver(JavaExamplesDialect javaExamplesDialect) {
ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
viewResolver.setTemplateEngine(templateEngine(javaExamplesDialect));
return viewResolver;
}
@Bean
public SpringTemplateEngine templateEngine(JavaExamplesDialect javaExamplesDialect) {
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
templateEngine.addDialect(javaExamplesDialect);
templateEngine.setEnableSpringELCompiler(true);
// 添加全局变量
templateEngine.addStaticVariable("globalVariable", "globalValue");
return templateEngine;
}
}
在上述配置中,我们创建了一个名为globalVariable
的全局变量,其值为globalValue
。这个全局变量可以在所有的Thymeleaf模板中直接使用,例如:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Thymeleaf Example</title>
</head>
<body>
<p th:text="${globalVariable}">Default Text</p>
</body>
</html>
在这个模板中,${globalVariable}
将会显示globalValue
,因为它是在配置中定义的全局变量。