web-dev-qa-db-ja.com

Thymeleaf-フォーマット時にNULLをチェックするためのベストプラクティス(つまり、日付)

日付のフォーマットを行うThymeleafテンプレートコードがあります。返されるオブジェクトで、その日付がnullになる場合があります。このような状況でThymeleafのnullを確認する最良の方法は何ですか?現在、テンプレートは次のエラーをスローしています:

Caused by: Java.lang.IllegalArgumentException: Cannot apply format on null
    at org.thymeleaf.util.Validate.notNull(Validate.Java:37)
    at org.thymeleaf.util.DateUtils.format(DateUtils.Java:182)
    at org.thymeleaf.expression.Dates.format(Dates.Java:164)
24
user1812806

thymeleafsオブジェクトユーティリティクラス Objects を使用するか、テンプレートに渡す前にオブジェクトを検証できます。

通常はテンプレートをハッキングしたくないので、私は事前検証を好みます。また、ビューからデータを疎結合にします。

5
Julien May

オブジェクトで条件式を使用して、オブジェクトがnullでない場合にのみフォーマット方法を適用することもできます:th:text="${myDate} ? ${#dates.format(myDate,...)}"

上記の式には「else」の部分がないことに注意してください。その場合、式は単にnullを返します(th:text属性は何も書き込みません)。

(StackOverflowで必要な免責事項:私はthymeleafの作成者です)

54