エキサイト株式会社メディア事業部佐々木です。エキサイトHDアドベントカレンダー2023の15日目を担当させていただきます。メディア事業部では、SpringBoot/ThymeleafでMPAの開発を行っているところもあるのですが、HTML上での補完の効きが悪いというのがあります。これを設定することである程度補完が効くようになります。その設定をご紹介します。
前提
## Java $ java --version openjdk 17.0.9 2023-10-17 LTS OpenJDK Runtime Environment Corretto-17.0.9.8.1 (build 17.0.9+8-LTS) OpenJDK 64-Bit Server VM Corretto-17.0.9.8.1 (build 17.0.9+8-LTS, mixed mode, sharing) ## Gradle $ ./gradlew --version ------------------------------------------------------------ Gradle 8.5 ------------------------------------------------------------ Build time: 2023-11-29 14:08:57 UTC Revision: 28aca86a7180baa17117e0e5ba01d8ea9feca598 Kotlin: 1.9.20 Groovy: 3.0.17 Ant: Apache Ant(TM) version 1.10.13 compiled on January 4 2023 JVM: 17.0.9 (Amazon.com Inc. 17.0.9+8-LTS) OS: Mac OS X 12.5 aarch64 ## SpringBoot . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v3.2.0)
Thymeleafの式構文を補完する
Thymeleafの式構文(th:textなどth:
がつくもの)を補完してくれるのは、xmlns:th="http://www.thymeleaf.org"
を <html>
タグ内に入れれば補完が効くようになります。
ThymeleafでPOJO(Plain Old Java Object)を補完する
上記だけだと、Thymeleafの式構文を補完するのみになります。結構便利になりましたが、for-each等でメソッドや変数のアクセスに補完を使いたくなります。@ThymesVar
を使用して、Thymeleaf上でサーバ側で設定したPOJOを補完できるようにします。、
シンタックスは下記のようになります。
<!--/* @thymesVar type="${POJOの型}" id="${変数名}" */-->
型は、フルパスで書く必要があります。サンプルでは下記のようにしました。
<!--/* @thymesVar type="java.util.List<jp.co.excite.adventcalendar.ThymeleafDemoController.Info>" id="infoList" */-->
このように書くとIntelliJで補完がされます。
まとめ
最近はフロントエンドの技術選定はReactやVueが多いですが、ちょっとした管理面などには、構築に手間がかからないMPAがまだまだ便利だったりします。Javaを書く時にIntelliJは大変便利なIDEです。それをテンプレートエンジンにも適用できたらもっと便利になります。@thymesVars
を使用して、少しでも書きやすくなればと思います。
最後に
エキサイトではフロントエンジニア、バックエンドエンジニア、アプリエンジニアを随時募集しております。長期インターンも歓迎していますので、興味があれば連絡いただければと思います。
募集職種一覧はこちらになります!(カジュアルからもOK) www.wantedly.com