Variables

mustache scripthtml output
{{message}}こんにちわ世界

HTML Escape

mustache scripthtml output
{{html output}}<font color="red">さようなら世界</font>
{{{html output}}}さようなら世界
{{& html output}}さようなら世界
mustache は、デフォルト動作で文字列を Escape する。 (たとえば、<font> という文字列データは &lt;font&gt; にエスケープされる)
{{{ か {& で、エスケープを抑止することができる。

IF ELSE

mustache scripthtml output
{{#flag1}}
  Flag1 ON
{{/flag1}}
Flag1 ON
{{#flag2}}
  Flag2 ON
{{/flag2}}
{{^flag2}}
  Flag2 OFF
{{/flag2}}
Flag2 OFF

ITERATIVE

mustache scripthtml output
<ul>
{{#team1}}
  <li> {{title}} {{name}} </li>
{{/team1}}
</ul>
  • Ms. Yuko
  • Ms. Kanae
  • Ms. Sachi
<ul>
{{#team2}}
  <li> {{title}} {{name}} </li>
{{/team2}}
{{^team2}}
  <li>NO MEMBER</li>
{{/team2}}
</ul>
  • NO MEMBER
{{# セクションは、ITERATIVE の展開
{{^ セクションは、ITERATIVE の要素数が 0 、または ITERATIVE 自体が null のとき、評価される。

FUNCTION

mustache scripthtml output
{{#copyrights}}
Copyright &copy; yyyy ACME Co. LTD All rights reserved
{{/copyrights}}
Copyright © 2015 ACME Co. LTD All rights reserved
{{#copyrights}}
{{message}}<br>
Copyright &copy; yyyy ACME Co. LTD All rights reserved
{{/copyrights}}
こんにちわ世界
Copyright © 2015 ACME Co. LTD All rights reserved
Java Bean のプロパティの TemplateFunction を実行することができる。
引数は、{{#copyrights}}{{/copyrights}} に囲まれた文字列。 この文字列がテンプレートであればさらに展開される。

IMPORT

Mustache は、{{> /footer}} で、footer.mustache をインポートできる。
しかし、このタグは、Jersey MVC mustache の機能ではなく Mustache の機能であるため、 footer.mustache をカレントディレクトリから探してしまう。
まぁ Jersey MVC mustache からは使えないということで

必要があれば FUNCTION で実装しよう

日本語の文字化け

う~ん、Jersey MVC は、ところどころでファイルの読み込みや書き出しに デフォルトエンコーディングを使っているので、 Glassfish の管理コンソールで JVM オプションに、"-Dfile.encoding=utf-8" を追加すとよろし

コメント

mustache scripthtml output
{{! Comment}}

{{ }} と表示したい

mustache scripthtml output
&#123;{ }&#125; {{ }}
mustache には、{{ }} をエスケープする文法がないので、 mustache テンプレート上では、実体参照文字を使い &#123;{ }&#125; と記述する。