springboot后端设置全局变量到前端Thymeleaf模板
上
需求分析:
⽹站使⽤ Spring Boot + Thymeleaf 开发,页⾯有很多个 Thymeleaf 视图(html页⾯),⽹站配置参数是保存在mysql数据库⾥的,现在想要实现传递⽹站配置参数⾄整个前台,让每个Thymeleaf 视图都能接收到⽹站配置参数;⽹站配置参数:⽐如⽹站名称、关键词、⽹站描述、⽹站底部信息等等。
实现⽅法:
1、到spring boot项⽬的⼊⼝启动⽂件(main(String[] args)⾥有SpringApplication.run⽅法的)
2、在⼊⼝启动⽂件⾥,增加⼀个configureThymeleafStaticVars,整个⼊⼝启动 ⽂件关键代码如下:
//⾃动装配(通过名称装配,这⾥不能⽤@Autowired)
@Resource
private ConfigService configService;
/**
* 程序⼊⼝
* @param args
*/
public static void main(String[] args) {
SpringApplication.run(CodepayApplication.class, args);
}
/**
* 加载全局变量到前端Thymelea模板上
*/
@Resource
private void configureThymeleafStaticVars(ThymeleafViewResolver viewResolver) {
//存放配置的字典集合
Map<String,String> config = new HashMap<>();
try {
List<Config> configList = configService.select();
if(configList!=null && configList.size()>0){
for (Config c : configList){
config.Key(),c.getVal());
}
}
} catch (Exception e) {
e.printStackTrace();
}
viewResolver.addStaticVariable("config", config);
}
其中viewResolver.addStaticVariable("config", config)就是设置你想传递到前台的数据
前端页面模板3、前台 Thymeleaf模板⽂件
<!DOCTYPE html>
<!--引⼊thymeleaf-->
<html xmlns:th="">
<html lang="en">
<head>
<meta charset="UTF-8">
<title>测试</title>
</head>
<body>
<p>读取配置信息</p>
⽹站名称:<span th:text="${config['name']}"></span> </body>
</html>
效果如下图:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论