LoginSignup
0
0

【Scala/Playframework】Twirlテンプレートエンジンの活用メモ

Last updated at Posted at 2023-08-07

はじめに

Scala/Playframework の Twirl を利用する時の活用集をメモしたものになります。
踏み込んだ内容ではなく、学習初期のメモなので Scala/Playframework を利用したての方を対象としています。

利用時のバージョン

  • Scala v2.xx
  • Play v2.8.x

活用メモ集

1. 半角スペースの相殺・長文の改行

規約や説明文など複数行に渡る文章を記載する際、改行した時にスペースが入り込んでしまうことがある。
そのようなケースで .scala.html ファイルで文字列に、余計なスペースを持たせたくない時は、下記のように記述する。

index.scala.html
@(
  Seq(
    "xxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "xxxxxxxxxxxxxxxxxxxxxxxxxxx"
  ).mkString("")
)

Seq でキリのいい文字列のところで分割し、 mkString("") でくっつけた、余計なスペースを持たない文章を出力させることができる。

2. @のエスケープ

の記号を文字列として利用したい場合は、 @@ とすることで文字列として HTML に表示できる。

入力値: <span>huga.huga@@gmail.com</span>
出力値: huga.huga@gmail.com

3. forループ ・ Index の利用

複数アイテムをもつリスト要素を for ループする際、リストアイテムの Index を取得したい場合は、 zipWithIndex を利用する。

index.scala
val contentSeq = Seq("いちご", "ぶどう", "たまご")

index.scala.html
<ul class="list">
  @for((item, index) <- contentSeq.zipWithIndex){
    <li class="item" id="data-@index">
      @item
    </li>
  }
</ul>
出力値
<ul class="list">
  <li class="item" id="data-0">
    いちご
  </li>
  <li class="item" id="data-1">
    ぶどう
  </li>
  <li class="item" id="data-2">
    たまご
  </li>
</ul>

index を id に含めたりすると、リストでも一意の要素として扱えるようになる。

さいごに

Twirl のちょっとした使い方や Tips 集のような形で記載しました。
メモ程度ですが久しぶりのアウトプットも兼ねて記載しました。

少しでもScala初学者のお役に立てれば嬉しいですmm

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0