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?
Dies ist ein Problem mit IntelliJ: IDEA-132738 .
Grundsätzlich kann IntelliJ die Modellvariablen nicht finden, wenn Spring Boot zur automatischen Konfiguration verwendet wurde.
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:
Wenn Sie von ThymeLeaf automatisch aufgebaute Erweiterungsobjekte verwenden, zB #temporals
from thymeleaf-extras-java8time
für die Konvertierung von java.time
objects:
und IntelliJ können sie nicht auflösen, verwenden ähnlichen Code und fügen einfach #
vor dem Objektnamen hinzu:
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
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!
Tags und Links java spring intellij-idea web thymeleaf