Spring Boot & Thymeleaf-удалить строгую проверку ошибок HTML

Я использую Spring Boot для приложения MVC, и моя технология просмотра-Thymeleaf. Одна из вещей, которые мне нужно сделать, это скопировать HTML существующего веб-сайта (не мое дело...) и визуализировать его с помощью Thymeleaf. Однако некоторые исходные HTML-файлы веб-сайта содержат незамкнутые HTML-теги (например,<meta>, <link>, <input>) или HTML-теги с элементами, не окруженными кавычками, например:

<div id=1></div>

вместо

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

конечно, в браузере это работает... Но Thymeleaf не позволит этого и не обслуживает страницу. Есть ли способ разрешить более мягкие правила для этого? Я искал документацию Thymeleaf и ссылку на весеннюю загрузку и не нашел ответа.

просто для уточнения - я даже не настроил свои собственные бобы для Thyemeleaf, просто добавил его в путь к классам через maven в качестве одного из стартеров spring-boot. Так что сейчас это настройки по умолчанию.

4 ответов


как сказал @mussdroid, все должно быть в допустимом XML. Вот часть документации Thymeleaf, объясняющая предпосылки для этого:http://www.thymeleaf.org/doc/articles/fromhtmltohtmlviahtml.html

кроме того, если это проблема, я считаю, что вы можете включить устаревший режим, чтобы разрешить шаблоны без XML, хотя я предпочел бы использовать действительный XML, если вероятный: http://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#what-kind-of-templates-can-thymeleaf-process

Я сам не знаю, как изменить режим, но я уверен, что DuckDuckGo делает или кто-то на этом сайте.


Я знаю, что я даю ответ после долгого времени, но все же, если это может помочь кому-то, хорошо поделиться.
Я решил проблему после настройки одного свойства
"весна,thymeleaf.режим " на "LEGACYHTML5".

 spring.thymeleaf.mode=LEGACYHTML5

и в ПОМ.xml, добавьте зависимость:

<dependency>
  <groupId>net.sourceforge.nekohtml</groupId>
  <artifactId>nekohtml</artifactId>
  <version>1.9.21</version>
</dependency>

Если вы хотите отключить кэширование thymeleaf, то Thymeleaf кэширование

spring.thymeleaf.cache=false

все должно быть в формате xthml

например:

HTML-ССЫЛКА

<link rel="stylesheet" type="text/css" href="mystyle.css">

Thymeleaf ссылка должна заканчиваться на"/>"

 <link rel="stylesheet" href="print.css" media="print" type="text/css" />

HTML META

<meta charset="UTF-8">

Thymeleaf META должна заканчиваться на"/>"

<meta charset="utf-8"/>

образцы

<input type="text" name="lastname" disabled /> wrong 

<input type="text" name="lastname" disabled="disabled" /> correct

в противном случае страницы не будут отображаться из-за применяемых правил xhmtl.

пожалуйста, посмотрите на ссылку, избегайте такого рода ошибок HTML и XHTML

С другой стороны, когда страница возвращается в браузер, вы увидите, что правила xhtml снова преобразуются в формат html. Но фактически страница, которую он запускает на сервере перед отправкой клиентских правил thymeleaf xhtml, применяется.


Весенняя Загрузка 1.5.3 поддерживает Thymeleaf 3. Thymeleaf 3 имеет полная поддержка разметки html5.

добавьте следующие строки в свой pom.xml чтобы переопределить версию Thymeleaf в Spring boot, и вы сможете использовать незамкнутые теги.

<properties>
   <thymeleaf.version>3.0.6.RELEASE</thymeleaf.version>
   <thymeleaf-layout-dialect.version>2.2.1</thymeleaf-layout-dialect.version>
    ...
</properties>