Spring Boot 1.3.x の Web アプリを 1.4.x へバージョンアップする ( その27 )( Thymeleaf parser-level comment blocks で @thymesVar のコメント文が HTML に出力されないようにする )
概要
記事一覧はこちらです。
Spring Boot 1.3.x の Web アプリを 1.4.x へバージョンアップする ( その26 )( jar ファイルを作成して動作確認する2 ) の続きです。
- 今回の手順で確認できるのは以下の内容です。
- Thymeleaf 3 で何が変わったのか確認したくて Tutorial: Using Thymeleaf を読んだのですが、Thymeleaf parser-level comment blocks というものがあることに今さら気づきました(Thymeleaf 3 の新機能ではありません)。
- @thymesVar のコメント文を HTML に出力しないようにするために使えそうなので試してみます。
参照したサイト・書籍
- Tutorial: Using Thymeleaf - 11.2. Thymeleaf parser-level comment blocks
http://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#thymeleaf-parser-level-comment-blocks
目次
手順
@thymesVar のコメント文を HTML に出力しないようにする
IntelliJ IDEA Ulitimate Editon では <!-- @thymesVar id="beanValidationGroupForm" type="ksbysample.webapp.lending.web.springmvcmemo.BeanValidationGroupForm" -->
のようなコメント文を書いておくと、Thymeleaf テンプレート内で変数の補完が効くようになります。
コメント文を書いていないと、以下の画像の赤枠の部分で Ctrl+Enter を押しても何も表示されませんが、
<!-- @thymesVar id="beanValidationGroupForm" type="ksbysample.webapp.lending.web.springmvcmemo.BeanValidationGroupForm" -->
のコメントを付けると、Ctrl+Enter を押すと候補が表示されます。
ただし HTML を出力した時にこのコメントがそのまま残ります。
HTML を見た時に Thymeleaf が使われていることが分からないようにしたくて、出力されない方法をずっと探していたんですよね。。。
そこで見つけたのが Thymeleaf parser-level comment blocks です。Thymeleaf テンプレート内で記述するコメントの書き方を HTML のコメント文 <!-- ... -->
ではなく <!--/* ... */-->
にすれば、補完も効くし、HTML には出力されないようになります。
<!--/* @thymesVar id="beanValidationGroupForm" type="ksbysample.webapp.lending.web.springmvcmemo.BeanValidationGroupForm" */-->
に変えても候補は表示されます。
そしてコメントは HTML には出力されません。
以下のファイル内の <!-- @thymesVar ... -->
→ <!--/* @thymesVar ... */-->
に修正します。
- src/main/resources/templates/sessionsample/confirm.html
- src/main/resources/templates/sessionsample/first.html
- src/main/resources/templates/sessionsample/next.html
- src/main/resources/templates/springmvcmemo/beanValidationGroup.html
- src/main/resources/templates/textareamemo/display.html
- src/main/resources/templates/textareamemo/index.html
Alt+Enter で @thymesVar のコメント文は自動補完できました。。。
IntelliJ IDEA Ulitimate Editon では Thymeleaf テンプレート上で Alt+Enter を押すことで <!--/*@thymesVar ... */-->
のコメント文を自動補完できることに気づきました。
まず <!--/*@thymesVar ... */-->
のコメント文がない変数には赤波下線が表示されます。
赤波下線が表示されている変数にカーソルを移動した後、Alt+Enter を押してコンテキストメニューを表示した後「Declare external variable in comment annotation」を選択します。
<!--/*@thymesVar ... */-->
のコメント文が補完されます。type=""
の中は空でクラスの補完メニューが出ますので、入力します。
履歴
2017/05/13
初版発行。
2017/05/13
* <!--/*@thymesVar ... */-->
のコメント文の自動補完について追記しました。