spring Thymeleaf.如何比较日期是来自未来还是过去?

wyyhbhjk  于 2023-09-29  发布在  Spring
关注(0)|答案(2)|浏览(143)

我想检查Employee.dateOfTermination中的日期是否在日期“now”之后。不幸的是,在运行以下代码后,我没有得到任何数据:

<td> <div th:switch="${employee.dateOfTermination}"> 
                            <span th:case="'&lt; now'">CASE 1</span>
                            <span th:case="'&gt; now'" th:text="${#dates.format(employee.dateOfTermination, 'dd-MM-yyyy')}">CASE 2</span></div></td>

问题来了,thymeleaf的语法对我来说确实不适用和恶心。我试着用th:if和解析int。

92dk7w1h

92dk7w1h1#

我会这样做:

<span th:if="${employee.dateOfTermination.before(#dates.createNow())}">Case 1</span>
<span th:if="${employee.dateOfTermination.after(#dates.createNow())}">Case 2</span>

或者,如果你喜欢这个开关:

<div th:switch="${employee.dateOfTermination.before(#dates.createNow())}">
    <span th:case="true">Case 1</span>
    <span th:case="false">Case 2</span>
</div>
x6492ojm

x6492ojm2#

另一种选择是在后端插入一个新参数并将其传递给Thymeleaf。例如,在backend中插入参数“age”,其getter将根据与当前时间的比较返回相应的字符串(例如:“较老”或“较年轻”)。然后将其添加到相应Thymeleaf页面的ModelView中,您可以在其中使用th:switch:
<th:block th:switch="${age}">
<th:block th:case="OLDER">
<span th:text="Age is older than now" style="..."></span>
</th:block>
<th:block th:case="YOUNGER">
<span th:text="Age is younger than now" style="..."></span>
</th:block>
</th:block>

相关问题