親バカエンジニアのナレッジ帳

webのエンジニアをやっており、日頃の開発で詰まったことや書き残しておきたいことを載せています。

Spring BootのThymeleafでmetaタグは閉じなければエラー!?


Whitelabel Error Page

Spring BootでThymeleafで実装したテンプレート(htmlファイル)を呼び出す時、
「Whitelabel Error Page」とか言う以下のエラーが発生。

f:id:tomotomo1129:20180607204535j:plain

なんだろうと思い、コンソールを覗いてみると以下のエラーメッセージが出ていました。

org.xml.sax.SAXParseException: 要素タイプ"meta"は、対応する終了タグ"</meta>"で終了する必要があります。

普通のHTMLでは、metaタグは閉じる必要がないのですが...

閉じタグを入れてエラーを回避

言う通りに入れると無事に表示が出ましたが、エディタによっては逆に構文エラー表示などがされて気持ち悪いのではないでしょうか。
なので、例えば以下のように記載すれば構文エラーなどは防げます。

<meta charset="UTF-8"/>

NekoHTMLを使う方法でも回避可能

以下の記事にも設定方法は記載しているのですが、NekoHTMLというライブラリをSpring Bootの設定ファイルに追記することで、閉じタグを入れなくてもエラーを回避することができます。

ti-tomo-knowledge.hatenablog.com

せっかく文法チェックをしてくれるなら、それに則って書きたいという人はこのライブラリは使う必要はないでしょうし、厳しいチェックが煩わしいと感じている人は導入することをおすすめします。


Spring Boot 2 プログラミング入門

Spring Boot 2 プログラミング入門

Spring Boot プログラミング入門

Spring Boot プログラミング入門

Spring Boot in Action

Spring Boot in Action