【问题标题】:vaadin date format not formatting properly when data loaded with lazyquerycontainer and jpa使用lazyquerycontainer 和 jpa 加载数据时,vaadin 日期格式格式不正确
【发布时间】:2015-08-04 09:51:48
【问题描述】:

您好,我正在使用与 jpa 集成的lazyquerycontainer。当实体管理器加载数据时,一些字段采用 bigdecimal 格式,但我想以日期格式显示。在过滤器表中,我还定义了一个装饰器,但它显示的格式是 20,010,130。 我可以在桌子上做些什么吗? 请帮忙 谢谢。

【问题讨论】:

    标签: java jpa lazy-loading vaadin entitymanager


    【解决方案1】:

    如果我对您的理解正确,可以覆盖表以执行您需要的操作:

            Table t = new Table() {
    
            @Override
            protected String formatPropertyValue(Object rowId, Object colId,
                    Property property) {
                Object v = property.getValue();
                if (v instanceof Date) {
                    Date dateValue = (Date) v;
                    return "Formatted date: " + (1900 + dateValue.getYear())
                            + "-" + dateValue.getMonth() + "-"
                            + dateValue.getDate();
                }
                return super.formatPropertyValue(rowId, colId, property);
            }
    
        };
    

    来自vaadin forum的示例

    【讨论】:

    • 我已经覆盖了这个方法,我也给了表格的格式,但我仍然得到相同的结果
    • 奇怪,你总是可以让条件不是基于值,而是取决于rowID。实际上,您应该首先尝试分配一个常量以确保它是否有效。作为附加说明,如果可以,您应该尝试使用网格。他们得到了更多的支持,而且这些事情更容易实现。
    猜你喜欢
    • 1970-01-01
    • 2020-05-31
    • 1970-01-01
    • 2018-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多