読者です 読者をやめる 読者になる 読者になる

のっかりThymeleaf 3.0 遊び

d.hatena.ne.jp

さすが。というか、僕がThymeleaf使ってみようと思ったのも数年前にしんさんに教えてもらったからだもんな。たしか。

こういうのも

注:遊びです。

    // メッセージ
    StandardMessageResolver resolver = new StandardMessageResolver();
    resolver.addDefaultMessage("oreore.num", "{0}");
    engine.setMessageResolver(resolver);

    // テンプレート
    String template = "[[#{oreore.num(${a+b})}]]";

MessageFormatがフォーマットしてくれるからってだけね。

全部書くとこう。

  @Test
  public void test() {
    // 準備
    TemplateEngine engine = new TemplateEngine();

    // メッセージ
    StandardMessageResolver resolver = new StandardMessageResolver();
    resolver.addDefaultMessage("oreore.num", "{0}");
    engine.setMessageResolver(resolver);

    // テンプレート
    String template = "[[#{oreore.num(${a+b})}]]";

    // パラメータ
    Map<String, Object> params = new HashMap<>();
    params.put("a", 1000);
    params.put("b", 20000);
    IContext context = new Context(Locale.getDefault(), params);

    // 生成
    String result = engine.process(template, context);

    // 出力
    assertThat(result, is("21,000"));
  }

そうか

StringTemplateResolverって3.0で追加されたのか。これが3.0からだって気づいてなかった。

StringTemplateResolver (thymeleaf 3.0.0.RELEASE API)

TemplateEngineのデフォルト設定でStringTemplateResolverが使われるようになってます。

これは、ファイルからじゃなくて、文字列をそのままテンプレートとして使えますよってResolverです。

僕が「TEXTモードなのかな?」って勘違いしてしまったんだけど、HTMLモードのインライン機能を使ってるからTEXTモードとは別の話だね。

宣伝てきな

bufferings.hatenablog.com

死霊作りがんばるー