ブックマーク可能なURLとGETメソッドを使用します。
日付を含み、デフォルトのDateTimeコンバーターを使用して変換されるいくつかのパラメーターがあります。
<f:viewParam name = "parameter" value = "#{model.parameter}" converter = "javax.faces.DateTime" />
これは完璧に機能し、パラメーターは文字列との間でコンバーターになります
<h:link>
これらのページへの リンク(たとえば、with)を生成する必要がある場合は、Date
パラメーターを正しくフォーマットされた文字列に変換する必要があります(<f:param>
タグはコンバーターをサポートしていないため)。のデフォルト形式は、Date.toString()
によって解析されませんjavax.faces.converter.DateTimeConverter
。
私は次の解決策を思いつきましたが、もっとエレガントにできると感じています。
カスタムEL関数を定義しましたconvertDate
<f:param name="parameter" value="#{ func:convertDate( model.someDate, component ) }" />
次の実装で
public static String convertDate( Date date, UIComponent uiComponent )
{
DateTimeConverter dateTimeConverter = new DateTimeConverter();
return dateTimeConverter.getAsString( FacesContext.getCurrentInstance(), uiComponent, date );
}
アイデアは、デフォルトjavax.faces.convert.DateTimeConverter
を使用して日付を変換することですが、対応するへの参照が必要UIComponent
です。
の使用法は#{component}
理にかなっていますか?もっと良い方法はありますか?