Я использую richfaces 4.0 и добавляю несколько фильтров столбцов для rich: dataTable. Теперь, так как я фильтрую столбец, содержащий дату, я хотел бы использовать rich: calendar для фильтрации содержимого таблицы. Итак, следуя найденным примерам, я добавил следующий код на страницу .xhtml:
<rich:column filter="#{rerunFilter.aodFilterImpl}">
<f:facet name="header">
<h:outputText value="Aod Rerun" />
<br/>
<rich:calendar id="aod"
datePattern="yyyy-MM-dd"
showWeekDaysBar="false"
showFooter="false"
value="#{rerunFilter.aodFilter}"
popup="true">
<a4j:ajax event="change" render="main:rerunListTable" execute="@this"/>
</rich:calendar>
</f:facet>
<h:outputText value="#{item.aod}">
<f:convertDateTime pattern="yyyy-MM-dd" />
</h:outputText>
</rich:column>
На стороне сервера у меня есть класс фильтра, в который я добавил следующий код:
private String aodFilter;
public String getAodFilter() {
return aodFilter;
}
public void setAodFilter(String aodFilter) {
logger.info("Received "+aodFilter);
this.aodFilter = aodFilter;
}
public Filter<?> getAodFilterImpl() {
return new Filter<Rerun>() {
public boolean accept(Rerun item) {
String aod = getAodFilter();
logger.info("Invoked with "+aod+" Item date "+item.getAod());
return true;
}
};
}
Когда я менял дату, используя календарь, я видел в журнале свойство правильно, но что-то не так, так как в конце я получил исключение
11: 50: 54 484 GRAVE [org.richfaces.log.Context] (http - 127.0.0.1-8080-1) main: rerunListTable: j_idt38: «Ср. 12 октября 00:00:00 CEST 2011» не удалось следует понимать как дату: javax.faces.convert.ConverterException: main: rerunListTable: j_idt38: «Ср 12 октября 00:00:00 CEST 2011» не может быть понят как дата.
Где я не прав?
Спасибо
фил