文系プログラマによるTIPSブログ

文系プログラマ脳の私が開発現場で学んだ事やプログラミングのTIPSをまとめています。

jspでドルマークがel式と解釈されてエラーになる件について

たまにこれが起きて面倒なのですよね〜


f:id:treeapps:20180426142529p:plain

tree-tips: 主にsolr・MySQLのtipsを掲載しています
シェルスクリプトの記事を書いていていて、シェルスクリプトの変数とel式の「${}」の記述が全く同じなのでエラーになりました。

具体的には以下のコードをjspで表示しようとして、パースエラーになりました。

for table in "${tables[@] views[@]}"

「${tables」がel式と判断されてしまったのです。

以下のように$をエスケープすることで解決できます。

el式の解釈の問題なので、レンダリングの時点でエスケープする必要があります。

for table in "${f:h("$")}{tables[@] views[@]}"

面倒くさいし冗長なのでもっと簡単な記述をしたいですが、HTML標準のエスケープ表記が用意されてないのです。

&を&とする感じでエスケープしたいですね。