Thymeleaf - Best practice for checking for NULL when formatting (ie. dates)

StackOverflow https://stackoverflow.com/questions/13825570

  •  07-12-2021
  •  | 
  •  

Frage

I have a Thymeleaf template code to format a date. There are times when that date will be null in the returned object. What is the best way to check for null in Thymeleaf in this situation? Currently the template is throwing the following error:

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)
War es hilfreich?

Lösung 2

you can either use thymeleafs objects utility class Objects or validate the object before passing it to the template.

i prefer the prevalidation as you normally do not want to hack around in your template. also that way you keep your data loosely coupled from the view.

Andere Tipps

You can also use a conditional expression on your object, so that the formatting method is only applied if you object is not null: th:text="${myDate} ? ${#dates.format(myDate,...)}"

Note there is no "else" part in the expression above, and in that case the expression will simply return null (making the th:text attribute write nothing).

(Disclaimer required by StackOverflow: I am the author of thymeleaf)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top