springboot - spring-boot-starter-thymeleaf對沒有結(jié)束符的HTML5標(biāo)簽解析出錯
問題描述
例如下面的html5代碼,在解析的時候是會出錯的
<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title></title></head><body><h1>Hello World</h1></body></html>
錯誤是沒有/這個結(jié)束符org.xml.sax.SAXParseException: 元素類型 'meta' 必須由匹配的結(jié)束標(biāo)記 '</meta>' 終止。后來試著在配置里添加spring.thymeleaf.mode=LEGACYHTML5也不起作用
問題解答
回答1:需要注意的是,LEGACYHTML5需要搭配一個額外的庫NekoHTML才可用。到項目根目錄的build.gradle文件里這樣添加它到dependencies
具體內(nèi)容如下:
非嚴(yán)格的thymeleaf格式
你可能會發(fā)現(xiàn)在默認(rèn)配置下,thymeleaf對.html的內(nèi)容要求很嚴(yán)格,比如<meta charset='UTF-8' />,如果少最后的標(biāo)簽封閉符號/,就會報錯而轉(zhuǎn)到錯誤頁。也比如你在使用Vue.js這樣的庫,然后有<p v-cloak></p>這樣的html代碼,也會被thymeleaf認(rèn)為不符合要求而拋出錯誤。
因此,建議增加下面這段:
spring.thymeleaf.mode = LEGACYHTML5spring.thymeleaf.mode的默認(rèn)值是HTML5,其實是一個很嚴(yán)格的檢查,改為LEGACYHTML5可以得到一個可能更友好親切的格式要求。
需要注意的是,LEGACYHTML5需要搭配一個額外的庫NekoHTML才可用。到項目根目錄的build.gradle文件里這樣添加它到dependencies:
compile(’net.sourceforge.nekohtml:nekohtml:1.9.22’)然后運(yùn)行一次Gradle刷新(有任何Gradle改動,都應(yīng)該這樣運(yùn)行一次):
Gradle刷新
最后重啟項目就可以感受到不那么嚴(yán)格的thymeleaf了。
參考
http://acgtofe.com/posts/2016...
回答2:難道要<meta charset='UTF-8'/>?
回答3:thymeleaf: cache: false mode: html
試試換成html
相關(guān)文章:
1. angular.js - angular做點擊購買時的遮罩層2. android - NavigationView 的側(cè)滑菜單中如何保存新增項(通過程序添加)3. 請教!!!本地laravel項目我想本地運(yùn)行,怎么在本地訪問控制器里的方法。4. 請問這位老師的PHPSTORM主題是自定義的嗎5. 冒昧問一下,我這php代碼哪里出錯了???6. 關(guān)于thinkphp 5.1中,ajax提交數(shù)據(jù)url的格式寫法,加花括號就出錯,請老師指點7. 提示語法錯誤語法錯誤: unexpected ’abstract’ (T_ABSTRACT)8. 老師 我是一個沒有學(xué)過php語言的準(zhǔn)畢業(yè)生 我希望您能幫我一下9. Thinkphp5.1報錯不支持Redis10. 連續(xù)的數(shù)值怎么用分組顯示,求大神指導(dǎo),求各位老師幫忙
