1
我們使用可收藏的URL和GET方法。自定義JSF EL功能,日期轉換器和當前組件
我們有一些參數包含日期,並使用默認的DateTime轉換器進行轉換。
<f:viewParam name = "parameter" value = "#{model.parameter}" converter = "javax.faces.DateTime" />
這完美的作品和參數轉換器,並從字符串
當我們要生成的鏈接(例如,<h:link>
)這些頁面,我們需要Date
參數轉換爲正確格式的字符串(如<f:param>
標籤不支持轉換器)。 javax.faces.converter.DateTimeConverter
將不會解析默認格式Date.toString()
。
我想出了以下解決方案,但我有感覺它可以做得更優雅。
我定義的自定義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}
的用法是否有意義?有沒有更好的辦法?