Thymeleaf - 如何处理空值并根据条件分配不同的值?

Thymeleaf - How to handle the null value and assign different value based on the condition?

在我的例子中,条件是如果 question.objQuestion.questionContent 为空,则显示 question.sbjQuestion.questionContent。我的尝试如下所示。但是没用。

<td th:switch = "${question.objQuestion.questionContent}"> 
    <span th:case="${question.objQuestion.questionContent == null}" th:text = "${question.objQuestion.questionContent}"></span>
    <span th:case="${question.objQuestion.questionContent != null}" th:text ="${question.sbjQuestion.questionContent}"></span>
</td>

obj_question_idsbj_question_id 是 foregin id

如果您使用的是 th:switchth:case 属性应该只包含要测试的值。在您的情况下,它应该如下所示:

<td th:switch="${question.objQuestion.questionContent}"> 
    <span th:case="null" th:text="${question.sbjQuestion.questionContent}"></span>
    <span th:case="*" th:text ="${question.objQuestion.questionContent}"></span>
</td>

你可以简化这个,只使用 Elvis operator:

<td> 
    <span th:text="${question.objQuestion.questionContent} ?: ${question.sbjQuestion.questionContent}"></span>
</td>

当我以这种方式使用 Elvis 运算符 ? 时它有效

解决方法附在下面:

<td>
   <span th:text = "${question.objQuestion?.questionContent}"></span>
   <span th:text = "${question.sbjQuestion?.questionContent}"></span>
</td>