アプリ開発

ThymeleafでHTML5を使い、閉じタグを書かない方法

更新日:

Thymeleafのデフォルト設定では閉じタグを要求される

SpringMVC+Thymeleafで開発しようとして、HTML5を使うことにした。

<!DOCTYPE html>
<html lang="ja" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">

metaタグはHTML5文法では閉じタグ必要ないはずだが、ThymeleafのXML解析により、閉じタグが要求されるのだ。

すなわち、

<meta charset="utf-8" />

と修正しなければならない。

これを回避するための方法は既にネットで報告されている。

<参考>
https://stackoverflow.com/questions/28624768/thymeleaf-strict-html-parsing-issue

1.spring.thymeleaf.mode=LEGACYHTML5

デフォルトのThymeleafのXML解析(パーサー)が厳密になっているためにこの問題が起きている。よって設定によってHTML5の標準に沿った解析をするように下記設定を追記する。

application.properties

spring.thymeleaf.mode=LEGACYHTML5

コレを追記して起動すると、下記エラーとなる。

Cannot perform conversion to XML from legacy HTML: The nekoHTML library is not in classpath. nekoHTML 1.9.15 or newer is required for processing templates in "LEGACYHTML5" mode [http://nekohtml.sourceforge.net]. Maven spec: "net.sourceforge.nekohtml::nekohtml::1.9.15". IMPORTANT: DO NOT use versions of nekoHTML older than 1.9.15.

nekoHTMLが必要だと言われるのである。

nekoHTMLとは、オープンソースのHTMLパーサーである。

2.nekoHTMLの導入

pom.xmlにnekoHTMLの設定を追記する。

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

コレを追記して起動すると正常表示される。
閉じタグがなくてもOKである。

【転職のプロが薦める】Web系自社開発のための転職エージェントランキング!

 転職満足度は『「いかに自分の希望にあう、条件のよい」企業から内定が出たか』で決まります。そのため、Web系企業に転職するときのエージェントを選ぶポイントは、「Web系企業の求人」をいくつ持っているかに尽きます。なので、総合大手よりも、Web系企業の求人を多くもつIT専門転職エージェントがオススメです。

ギークリー

  • Web系企業の求人数は9000以上とダントツに多い。
  • 「リクナビNEXTエージェントNetwork」にて、「紹介求人案件満足度部門」「カウンセリング・対応満足度部門」で1位獲得!
  • 「営業が強い」という口コミが多いが、その分熱心に求人を提案してくれる。
  • 無料相談のWEB登録は、履歴書・職務経歴書不要で、たった60秒で超簡単
  • 無料相談は東京・神奈川・埼玉・千葉で勤務できるエンジニアが対象。

レバテックキャリア

  • Web系企業の求人数が4000以上と豊富
  • 「GOOD AGENT AWARD」で「2018年金賞」受賞!
  • 転職業界の人間同士の会話でも、ITといえばレバテックとまず挙がる。
  • 無料相談のWEB登録は、履歴書・職務経歴書不要で、たった60秒で超簡単
  • 無料相談は東京、千葉、埼玉、神奈川、大阪、兵庫、京都、福岡で勤務できるエンジニアが対象。

ワークポート

  • 求人数は2000以上と上2社より少ないが、古くからIT専門として有名。
  • 「GOOD AGENT RANKING」で「転職決定人数部門」第1位獲得!
  • 無料相談のWEB登録は、履歴書・職務経歴書不要で、たった60秒で超簡単

-アプリ開発

Copyright© SIerからWeb系自社開発に転職!失敗して感じたたった1つの後悔 , 2019 All Rights Reserved.