首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在列上使用rich:calendar筛选rich:dataTable

在列上使用rich:calendar筛选rich:dataTable
EN

Stack Overflow用户
提问于 2011-10-06 18:11:25
回答 1查看 2.7K关注 0票数 1

我使用的是rich filters 4.0,并在rich:dataTable上添加了一些列过滤器。现在,由于我正在过滤一个包含date的列,所以我想使用rich:calendar来过滤表的内容。因此,按照我找到的示例,我将以下代码添加到.xhtml页面:

代码语言:javascript
复制
<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>

在服务器端,我有filter类,我在其中添加了以下代码:

代码语言:javascript
复制
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 main:rerunListTable:j_idt38:'Wed Oct 12 00:00:00 CEST 2011‘不能理解为日期。:javax.faces.convert.ConverterException: main:rerunListTable:j_idt38:'Wed Oct 12 00:00:00 CEST 2011’不能理解为日期。

我哪里错了?感谢文件

EN

回答 1

Stack Overflow用户

发布于 2011-10-07 04:22:38

我找到问题了!我为aodFilter属性使用了错误的类型,它是一个java.util.Date,我之前使用了一个字符串。使用正确的类型并添加过滤器逻辑,一切都会正常工作。请注意,我必须解决另一个小问题,因为我没有识别出JSF在没有使用我自己的时区的情况下转换日期。顺便说一下,我添加了这些行

代码语言:javascript
复制
<context-param>
    <param-name>javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE</param-name>
    <param-value>true</param-value>
</context-param>

对于这里建议的web.xml,f:convertDateTime displays wrong Date和一切都很好,谢谢

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7672878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档