Lambdaカクテル

京都在住Webエンジニアの日記です

Invite link for Scalaわいわいランド

Play Frameworkのテンプレートで@記号を入力したいときは2つ重ねればいい

タイトルが全てです。Play FrameworkのテンプレートエンジンTwirlは@を特殊扱いしています。Play 3.0で確認しましたが、どのバージョンでも同じはず。

@foo

こう書くと変数fooへの参照になるわけです。

Bootstrapを使いたいときに以下のようなコードをテンプレートに埋め込みたいことがあると思います:

<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-..." crossorigin="anonymous">

URLの中に@が入っているのでTwirlはコケます。Invalid '@' symbolと言われたらこれです。

@自体を入力したいときは@@と書けばよいです:

<link href="https://cdn.jsdelivr.net/npm/bootstrap@@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-..." crossorigin="anonymous">

なんかマヌケだけどしょうがない。

@に続いて変数を使いたいとき(例えば@windymeltみたいにユーザ名を表示したいとき)も@@@userNameみたいに書けばいいです。

★記事をRTしてもらえると喜びます
Webアプリケーション開発関連の記事を投稿しています.読者になってみませんか?