html - Thymeleaf - 严格的 HTML 解析问题

标签 html thymeleaf

HTML5 允许更自由地编写一些标签,即没有相应的 END 标签。例如input不需要关闭</input> .However if choose template mode HTML5在 Thymeleaf 中,Thymeleaf 引擎提示这个并且不解析 HTML 模板。我想覆盖此默认的 Strict 标记检查行为。即 Thymeleaf 应该在没有响应的情况下解析带有元和输入(和类似)标签的 HTML 模板。关闭标签。 PL。指导。

当你有这样的事情时它也会提示

<a href="/home/pic/image.png" download="/path/to/file" data-gallery></a>

当它遇到 data-gallery throws “should be followed by '='” 时会抛出异常,这有点烦人,因为它剥夺了 HTML5 的灵 active 。

最佳答案

您所要做的就是在“LEGACYHTML5”模式下运行 Thymeleaf,它就像一个魅力。感谢thisthis发布后,我找到了解决方案并在 SO 中进行了记录,这样其他人就不必在寻找这个答案时遇到同样的麻烦。

要设置遗留模式,您可以在 Spring XML 文件中定义 bean:

<!-- View TemplateResolver -->
<bean id="templateResolver" class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
    <property name="templateMode" value="LEGACYHTML5"/>
    <property name="cacheable" value="false"/>
</bean>

或将属性添加到 application.properties 文件:

spring.thymeleaf.mode=LEGACYHTML5
spring.thymeleaf.cache=false

在这两种情况下,您都必须将 nekohtml jar 添加到您的项目中,或者,如果您正在运行 maven,则可以将其依赖项添加到您的 pom.xml

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

Gradle

'net.sourceforge.nekohtml:nekohtml:1.9.21'

关于html - Thymeleaf - 严格的 HTML 解析问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28624768/

相关文章:

spring - thymeleaf + Spring : How to keep line break?

java - 将 Thymeleaf 方言表达式返回值分配给 :with 中的 Thymeleaf 变量

java - thymeleaf 中的 if 语句

javascript - html li 标签的问题

html - 2 列 Flexbox 高度相同但列宽不同

php - 从数据库动态加载博客文章

javascript - Bootstrap Accordion 不工作

javascript - 如何使用 javascript 在跨度中添加/删除 html 数据

hibernate - Springboot关系管理

java - 尝试使用枚举作为与 thymeleaf 一起使用的输入