Spring Boot & Thymeleaf - Entfernen Sie strenge HTML-Fehlerprüfung

8

Ich verwende Spring Boot für eine MVC-Anwendung, und meine Ansichtstechnologie ist Thymeleaf. Eines der Dinge, die ich tun muss, ist das Kopieren des HTML einer bestehenden Website (nicht mein Tun ...) und das Rendern mit Thymeleaf. Einige Quelltexte der Website enthalten jedoch nicht geschlossene HTML-Tags (z. B. <meta> , <link> , <input> ) oder HTML-Tags mit Elementen, die nicht von Anführungszeichen umgeben sind, z. B .:

  

<div id=1></div>

statt

  

<div id="1"></div>   ).

Natürlich funktioniert das im Browser ... Aber Thymeleaf lässt das nicht zu und dient nicht der Seite. Gibt es eine Möglichkeit, nachsichtigere Regeln dafür zuzulassen? Ich habe Thymeleafs Dokumentation und Spring Boot Referenz durchsucht und keine Antwort gefunden.

Nur zur Klarstellung - ich habe nicht einmal meine eigenen Beans für Thymeleaf konfiguriert, sondern sie einfach über Maven als einen der Spring-Boot-Starter in den Klassenpfad aufgenommen. Das sind jetzt die Standardeinstellungen.

    
Ozilophile 03.08.2015, 21:17
quelle

4 Antworten

4

Wie @mussdroid sagte, muss alles in gültigem XML sein. Hier ist ein Teil von Thymeleafs Dokumentation, die den Hintergrund dafür erklärt: Ссылка

Auch wenn dies ein Problem ist, glaube ich, dass Sie den Legacy-Modus aktivieren können, um Nicht-XML-Vorlagen zuzulassen, obwohl ich es vorziehen würde, wenn möglich gültiges XML zu verwenden: Ссылка

Ich weiß selbst nicht, wie ich den Modus ändern soll, aber ich bin mir sicher DuckDuckGo oder jemand auf dieser Seite.

    
xdhmoore 03.08.2015, 23:16
quelle
7

Ich weiß, dass ich nach langer Zeit antworte, aber immer noch, wenn es jemandem helfen kann, ist es gut zu teilen.
Ich habe das Problem gelöst, nachdem ich eine Eigenschaft von "spring, thymeleaf.mode" auf "LEGACYHTML5" eingerichtet habe.

%Vor%

Und in der pom.xml fügen Sie die Abhängigkeit hinzu:

%Vor%

Wenn Sie das Caching von Thymoleflecken deaktivieren möchten, dann thymeleaf caching

%Vor%     
Ankur Gupta 27.02.2017 11:09
quelle
2

Alles sollte im xthml Format sein

Zum Beispiel;

HTML LINK

%Vor%

THYMELEAF LINK sollte enden mit "/ & gt;"

%Vor%

HTML META

%Vor%

THYMELEAF META SOLLTE mit "/ & gt;" enden

%Vor%

Beispiele

%Vor%

Andernfalls werden die Seiten wegen der angewendeten xhmtl-Regeln nicht angezeigt.

Bitte werfen Sie einen Blick auf den Link, vermeiden Sie diese Art von Fehlern HTML und XHTML

Wenn andererseits die Seite zum Browser zurückkehrt, sehen Sie, dass xhtml-Regeln wieder in das HTML-Format konvertiert werden. Aber die tatsächliche Seite es auf einem Server vor dem Senden Client thymeleaf xhtml Regeln ausgeführt werden angewendet.

    
mussdroid 03.08.2015 22:41
quelle
2

Spring Boot 1.5.3 unterstützt Thymeleaf 3. Thymeleaf 3 hat volle HTML5-Markup-Unterstützung.

>

Fügen Sie Ihrem pom.xml folgende Zeilen hinzu, um die Thymeleaf-Version im Spring-Boot zu überschreiben, und Sie können nicht geschlossene Tags verwenden.

%Vor%     
dono 07.06.2017 03:53
quelle