ひがやすを技術ブログ

電通国際情報サービスのプログラマ

SAStrutsのファンクションの改良

1.0.1でSAStrutsのファンクションに改良を入れます。
最初は、f:date()。日付のフォーマットは、fmt:formatDateタグを使うのが基本ですが、fmt:formatDateタグは、値がjava.util.Dateでなければフォーマットできません。Strutsでは、入力値を受け取るためには、文字列でプロパティの型を定義するのが普通なので、標準だと、日付用の入力値をフォーマットすることができません。
そこで、日付用の文字列で定義された入力値をDateに変換するのが、f:date()です。基本的な使い方は次のとおりです。


<fmt:formatDate value="${f:date(hireDate, 'yyyyMMdd')}"
pattern="yyyy/MM/dd"/>
同様の理由で、f:number()も用意しました。

<fmt:formatNumber value="${f:number(salary, '####')}"
pattern="#,###"/>
f:h()は、文字列だけでなく、Objectを受け取って、配列の場合は、Arrays.toString()を使って文字列に変換してから、HTMLエスケープするようにしました。配列以外の場合は、toString()の結果をHTMLエスケープしています。
後、テキストエリアに入力した文字列を表示するときに、改行を<br />に変換するf:br()のファンクションも追加しました。