pom.xmlにNeko HTMLを追加しても、追加したことにならないやつ
起こったこと
thymeleaf + vue.js(とElement)でフロントエンドを書いているんだけれども
<el-menu-item index="1-1" @click="onTopMenuCLick">
みたいな@マークが入ったものを書こうとすると
org.xml.sax.SAXParseException: Element type "el-menu-item" must be followed by either attribute specifications, ">" or "/>".
というエラーが出て怒られる。
これは、thymeleafの構文チェックが厳しすぎるかららしい。
確かに、<br>
だって<br />
って書かないと怒られるもんね…
これを解決するにはもうちょっとゆるめにチェックしてもらう必要があるとのこと。
具体的にはapplication.propertiesにspring.thymeleaf.mode=LEGACYHTML5
を追加して、Neko HTMLというライブラリを使えばよいらしい。
nekoHTML名前かわいい。
<dependency> <groupId>net.sourceforge.nekohtml</groupId> <artifactId>nekohtml</artifactId> </dependency>
これをpom.xmlに追加して、もう一度試してみる。
org.thymeleaf.exceptions.ConfigurationException: 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追加したやろ!
リフレッシュしたり、読み込み順を変えたりしたけどまったく変わらず。
いい加減にしろ!!
んで、インターネッツとにらめっこすること数時間。
なんか、jarを自分でダウンロードしてローカルにおいてそれをクラスパスに追加するとうまくいくらしい。
やってみる・・・あ、動いた。
な・・・なんで・・・。