2016-10-20 1 views
6

Frühlings-boot v1.4.1
Java v1.8
Thymeleaf v2.1.5 zu nennen.Fehler: Versuchte Methode "Format" auf null Kontextobjekt

Die folgende Codezeile aus meiner Sicht:

<td th:each = "sprint : ${sprints}" th:text = "${sprint.releaseDate} ? ${#temporals.format(sprint.releaseDate, 'MMM/dd/yyyy')}"></td> 

die Syntax off Ich stützt der S. O. hat Frage SpringBoot Thymeleaf Ordinal Numbers, erzeugt den Fehler:

org.springframework.expression.spel.SpelEvaluationException: EL1011E:(pos 11): Method call: Attempted to call method format(java.time.LocalDate,java.lang.String) on null context object

Allerdings, wenn ich diese Codezeile ausgeführt werden, ohne die Formatierung Thymeleaf es funktioniert und macht eine Tabelle von LOCALDATE Objekte in Standardformat („2016.05.25“) .

Frage: Warum bekomme ich einen Fehler 'Null Kontext Objekt' und was bedeutet das? Und wie kann ich bearbeiten, um die gewünschte Formatierung zu erhalten?

+0

#temporals erscheint thymeleaf-extras-java8time bezogen zu werden, ist, dass im Frühjahr Boot-Konfiguration enthalten ist? Wenn nicht, erhalten Sie den Fehler, weil #temporals auf null auflöst und versucht, .format für ein Null-Objekt auszuführen. – Metroids

+0

Sieht aus, als würde ich v2.1.5 ausführen und ich brauche v3, um das Extras-Modul zu starten. https://github.com/thymeleaf/thymeleaf-extras-java8time –

+1

Es gibt eine Version 2.1.0.RELEASE für Thymeleaf 2.1 (erfordert 2.1.3+) – Metroids

Antwort

7

Um #temporals Objekt zu verwenden, müssen Sie thymeleaf-extras-java8time Modul zu Ihrem Projekt hinzufügen. Here ist die GitHub-Seite des Extras-Moduls.

This module adds a #temporals object similar to the #dates or #calendars ones in the Standard Dialect, allowing the formatting and creation of temporal objects from Thymeleaf templates.

In der Version 1.4.1 des Frühlings-Boot ist es nur notwendig, das Extras-Modul enthalten, und die automatische Konfiguration wird bis es für Sie festgelegt. Stellen Sie sicher, dass Sie die richtige Version zur Verfügung gestellt, hängt von Ihrer Thymeleaf Version:

  • Version 3.0.0.RELEASE - for Thymeleaf 3.0 (requires Thymeleaf 3.0.0+)
  • Version 2.1.0.RELEASE - for Thymeleaf 2.1 (requires Thymeleaf 2.1.3+)

ich die gleiche Feder Boot haben und thymeleaf Versionen, wie Sie und haben den gleichen Fehler erhalten, nur weil ich unangemessene Version von Extras bieten (3.0.0). Schalten sie niedrigere Version das Problem (in meinem Fall in Maven pom-Datei) festgelegt:

<dependency> 
    <groupId>org.thymeleaf.extras</groupId> 
    <artifactId>thymeleaf-extras-java8time</artifactId> 
    <version>2.1.0.RELEASE</version> 
</dependency> 
Verwandte Themen