2015-02-20 25 views
16

HTML5 cho phép một số thẻ được viết tự do hơn tức là không có thẻ END tương ứng. ví dụ. input không cần phải đóng </input> .Tuy nhiên nếu chọn chế độ mẫuHTML5 trong Thymeleaf the Thymeleaf engine than phiền về điều này và không phân tích cú pháp mẫu HTML. Tôi muốn ghi đè hành vi kiểm tra thẻ Strict mặc định này. tức là Thymeleaf nên phân tích cú pháp một mẫu HTML với các thẻ meta và input (AND ALIKE) KHÔNG CÓ RESP của họ. KẾT THÚC TAGS. Pl. hướng dẫn.Thymeleaf - Vấn đề phân tích cú pháp HTML nghiêm ngặt

Nó cũng phàn nàn khi bạn có một cái gì đó như thế này

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

Nó ném một ngoại lệ khi nó gặp những dữ liệu gallery throws "nên được theo sau bởi '='", đó là loại gây phiền nhiễu vì nó mất tính linh hoạt trong HTML5.

Trả lời

54

Tất cả những gì bạn phải làm là chạy Thymeleaf ở chế độ "LEGACYHTML5" và nó hoạt động như một sự quyến rũ. Nhờ có thisthis bài đăng, tôi đã tìm thấy giải pháp và tài liệu trong SO để những người khác không phải trải qua cùng một sự cố khi tìm câu trả lời này.

Để thiết lập chế độ cũ, bạn có thể xác định đậu trong tập tin XML mùa xuân của bạn:

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

hoặc thêm các thuộc tính cho application.properties file:

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

Và trong cả hai trường hợp, bạn phải thêm bình nekohtml vào dự án của bạn hoặc, nếu bạn đang chạy maven, bạn có thể thêm sự phụ thuộc của nó vào pom.xml của bạn

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

Gradle

'net.sourceforge.nekohtml:nekohtml:1.9.21' 
1

Đây là cách bạn có thể làm điều đó một cách gọn gàng

Bước 1: Thêm thymeleaf chế độ tập tin application.properties của bạn.

nguồn/application.properties

spring.thymeleaf.mode=LEGACYHTML5 

Bước 2: Thêm phụ thuộc nekohtml đến tập tin pom.xml của bạn.

pom.xml

<dependency> 
    <groupId>net.sourceforge.nekohtml</groupId> 
    <artifactId>nekohtml</artifactId> 
</dependency> 
Các vấn đề liên quan