我试图在thyymleaf引擎中为列表中对象的属性之一执行if语句。
我的目的是如果somoLetu。hSecondReading == null我应该看到一个文本No Second Reading,但如果没有,我应该看到Second Reading. 但是输出显示Second Reading文本在两种情况下要么为空或不,我做错了什么。
在masomo.html中,我是这样做的文件
<div th:each="somoLetu : ${masomoYote}" class="container my-5">
<h1 th:text= "${somoLetu.date}"></h1>
<h1 th:text= "${somoLetu.familiaName}"></h1>
<h1 th:text= "${somoLetu.kanda}"></h1>
<div th:if= "${somoLetu.hSecondReading == null}" ><h1>No Second Reading</h1></div>
<div th:unless= "${somoLetu.hSecondReading == null}" ><h1>Second Reading</h1> <h1 th:text="${somoLetu.hSecondReading}"></h1></div>
</div>
</div>
这些是我的对象
的属性@Entity
@Table(name = "misale")
public class Misale {
@Id
@Column(name ="date")
private String date;
@Column(name ="h_second_reading")
private String hSecondReading;
private String familiaName;
private String kanda;
.................}
这是我在控制器类中获取所有列表的方法
@Autowired
private MisaleRepository misaleRepository;
@GetMapping("/masomo")
public String masomoAngalia(Model model){
model.addAttribute("masomoYote", misaleRepository.findAll() );
return "masomo";
}
hSecondReading
的值是多少?您确定它是null
而不是空字符串吗?这不是一回事。
您应该知道变量是否为空(或可以为空)。如果你不注意这一点,这可能会导致Java中更严重的错误。
可能使用thyymeleaf的isEmpty
助手:${#strings.isEmpty(somoLetu.hSecondReading)}