見出し画像

#2.Thymeleafで "|(パイプ)" を含む文字列が上手く扱えなかった話

業務でThymeleafを使用したWeb画面の実装をしており、タイトルの問題にハマったのでnoteにメモしておきます。

■事象

キーに"salesProfit|202201"のような文字列を使用しているMapの値をThymeleafで「map.salesProfit|202201」のように取得するとエラーになる。

■原因

"|(パイプ)"がThymeleaf内で特殊な意味(リテラル置換)を持つ文字のため。
Thymeleafでは、"|(パイプ)"で囲んだ中の変数を展開して表示してくれるみたいです。

<p th:text="|test' ${hoge}|">テストほげほげ</p>

今回の場合だと"|(パイプ)"が正しく閉じられてないからエラーで怒られていました。
※「map.salesProfit\|202201」のようにバックスラッシュでエスケープしてもダメでした。。

■修正方法

「map["salesProfit|202201"]」のように取得した。
クオーテーションで囲むことで"|(パイプ)"を文字列として認識してくれたみたいです。

単純すぎて、もっと早く気づきたかった。。


■唐突なサイト紹介

日頃の仕事や人生に疲れてはいないでしょうか?
そんな人の心を癒す記事だけを集めたまとめサイトを作成しました!
是非見てみてください!
癒っちゃんねる



この記事が気に入ったらサポートをしてみませんか?