日付のフォーマットを行う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)
thymeleafsオブジェクトユーティリティクラス Objects を使用するか、テンプレートに渡す前にオブジェクトを検証できます。
通常はテンプレートをハッキングしたくないので、私は事前検証を好みます。また、ビューからデータを疎結合にします。
オブジェクトで条件式を使用して、オブジェクトがnullでない場合にのみフォーマット方法を適用することもできます:th:text="${myDate} ? ${#dates.format(myDate,...)}"
上記の式には「else」の部分がないことに注意してください。その場合、式は単にnullを返します(th:text
属性は何も書き込みません)。
(StackOverflowで必要な免責事項:私はthymeleafの作成者です)