Spring boot + thymeleaf in IntelliJ: kann vars nicht auflösen

11

Ich schreibe eine kurze Webformular-Anwendung mit Spring Boot und Thymel auf IntelliJ, aber es scheint, dass in der HTML-Datei alle Felder im Modell nicht aufgelöst werden können. Hier ist mein Code:

Controller-Klasse:

%Vor%

Modellklasse:

%Vor%

Dann ist die index.html:

%Vor%

Es gibt immer rote Linien unter "Post", "Titel" und "Inhalt", aber ich weiß nicht, wie ich es lösen soll. Ist es ein Problem von IntelliJ oder nur ein Problem meines Codes?

    
Shuhan Liu 02.08.2016, 01:44
quelle

3 Antworten

13

Dies ist ein Problem mit IntelliJ: IDEA-132738 .

Grundsätzlich kann IntelliJ die Modellvariablen nicht finden, wenn Spring Boot zur automatischen Konfiguration verwendet wurde.

    
Andrew 02.08.2016 12:35
quelle
8
  1. Wenn Ihre IntelliJ-Version & lt; 2017.3 ist es, als schrieb Andrew , ein bekannter Fehler IDEA-132738 . Es gibt eine Problemumgehung, wie die Fehlermarkierungen in der IDE behoben werden können. IntelliJ unterstützt auch die halbautomatische Generierung des unten genannten Codes:
  

Sie können Alt + Eingabetaste verwenden, um die Intention "Externe Variable in Kommentaranmerkung deklarieren" aufzurufen, um das "nicht aufgelöste Modellattribut" in Ihren Ansichten zu entfernen.

Fügen Sie Ihrer html -Datei den folgenden Code hinzu:

%Vor%

Wenn Sie von ThymeLeaf automatisch aufgebaute Erweiterungsobjekte verwenden, zB #temporals from thymeleaf-extras-java8time für die Konvertierung von java.time objects:

%Vor%

und IntelliJ können sie nicht auflösen, verwenden ähnlichen Code und fügen einfach # vor dem Objektnamen hinzu:

%Vor%
  1. Wenn Ihre IntelliJ-Version & gt; = 2017.3 lautet, sollte das Problem behoben sein (@FloatOverflow: "Ich bestätige, dass in Version 2017.3 Build 25.Okt.2017 das Problem behoben wurde"):
  

Status 2017.3

     

Die Unterstützung für automatisch konfigurierte MVC-Anwendungen im Spring Boot-Modus ist abgeschlossen, alle unterstützten Autokonfigurationssichten werden unterstützt.

     

Fix-Versionen: 2017.3

    
Honza Zidek 28.06.2017 13:35
quelle
1

Ich möchte noch etwas hinzufügen. Wie oben erwähnt, wurde das Problem in IntelliJ 2017.3 behoben. Ich kann das auch bestätigen.

Ich habe jedoch festgestellt, dass dies nur dann zutrifft, wenn Sie alle Ihre Attribute direkt innerhalb der zuständigen Controller-Funktion definieren, wie z. das:

%Vor%

Wenn Sie eine Unterfunktion verwenden, in der Sie die Modellattribute definieren (siehe Beispiel unten), kann IntelliJ die Attribute in der HTML-Vorlage immer noch nicht finden.

Beispiel :

%Vor%

Stellen Sie also sicher, dass Sie Ihren Code direkt in die View-Funktion einfügen!

    
user7346048 15.12.2017 08:35
quelle