基本上我在属性文件中有配置
data.enabled = true
我为此添加了一个POJO类
@Configuration
@PropertySource(value = {"classpath:dataconfig.properties"})
public class DataProperties {
private Boolean enabled;
}
我想使用thymeleaf检查html标签上的enabled属性。
<li th:if="${DataProperties.getEnabled() == true}"><h3>Hello</h3></li>
答案 0 :(得分:2)
首先,您应该将@ConfigurationProperties(prefix="data")
添加到配置类中。
@Configuration
@PropertySource("classpath:dataconfig.properties")
@ConfigurationProperties(prefix="data")
public class DataProperties {
private Boolean enabled;
这会激活您的变量直接绑定到属性值而不使用@Value
注释。在您的属性文件中,您有data.enabled
。这意味着您的前缀为data
。所以你也必须设置它。
要直接在thymeleaf中使用bean,您需要使用特殊命令。在您的情况下,它应该是这样的:(see point 5 in the docs)
<li th:if="${@dataProperties.getEnabled() == true}" ><h3>Hello</h3></li>
增加1:
要在控制器之类的其他spring bean中使用相同的属性,您必须自动装配DataProperties
@Controller
public class IndexController {
@Autowired
private DataProperties dataProperties;
@GetMapping("/")
public String index() {
dataProperties.getEnabled();
return "index";
}
只是提到它在一个领域的autowire是不好的做法。但是您可以选择使用它或者在构造函数或setter上使用autowire。