if-unless在thymyleaf引擎中给出相同的返回值



我试图在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)}

最新更新