Thymeleaf中获取redis中的值
时间: 2023-08-10 19:03:15 浏览: 117
SpringBoot+Mybatis+druid+Redis+thymeleaf例子
要在Thymeleaf中获取Redis中的值,可以使用Spring框架提供的RedisTemplate,通过RedisTemplate的方法获取Redis中的值,然后将其传递到Thymeleaf模板中进行展示。以下是一个示例代码:
1. 首先在Spring Boot项目中配置RedisTemplate:
```
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(redisConnectionFactory);
// 设置序列化器
StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class);
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
jackson2JsonRedisSerializer.setObjectMapper(objectMapper);
redisTemplate.setKeySerializer(stringRedisSerializer);
redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
redisTemplate.setHashKeySerializer(stringRedisSerializer);
redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);
redisTemplate.afterPropertiesSet();
return redisTemplate;
}
}
```
在上面的代码中,我们配置了RedisTemplate,并设置了序列化器,这里使用了Jackson2JsonRedisSerializer序列化器。
2. 然后在Controller中获取Redis中的值,并将其传递到Thymeleaf模板中:
```
@Controller
public class RedisController {
@Autowired
private RedisTemplate<String, Object> redisTemplate;
@GetMapping("/redis")
public String getRedisValue(Model model) {
String value = (String) redisTemplate.opsForValue().get("key");
model.addAttribute("value", value);
return "redis";
}
}
```
在上面的代码中,我们注入了RedisTemplate,并通过`opsForValue().get()`方法获取Redis中的值,并将其传递到Thymeleaf模板中的`value`变量中。
3. 最后在Thymeleaf模板中展示Redis中的值:
```
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>获取Redis中的值</title>
</head>
<body>
<div>
Redis中的值: <span th:text="${value}"></span>
</div>
</body>
</html>
```
在上面的代码中,我们使用Thymeleaf的变量表达式`${value}`展示Redis中的值。
阅读全文