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,它就像一个魅力。感谢this和 this发布后,我找到了解决方案并在 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/