Vaadin编辑json回复

时间:2011-03-29 07:38:23

标签: json containers vaadin

我使用Vaadin作为框架来表示我的应用程序的表示层。 我在Vaadin Table列表中遇到了麻烦。我加载1000行5列(是的我需要加载所有1000,还有一个选项加载少。=))但这在使用Vaadin时不是很快。当我看到Json发送时,我意识到有很多变量,我不想发送给everu table row。

这是我现在的回复:

"domaindom-000000938.co_uk",
    ["17",
        {"id": "PID783","readonly":true,"locale": "en_EN","format": "yyyy-MM-dd","strict":true,"wn":false,"parsable":true,
            "v":{"day":7,"month":2,"year":2011}}],
    ["17",
        {"id": "PID784","readonly":true,"locale": "en_EN","format": "yyyy-MM-dd","strict":true,"wn":false,"parsable":true,
            "v":{"day":7,"month":2,"year":2011}}],
    ["17",
        {"id": "PID785","readonly":true,"locale": "en_EN","format": "yyyy-MM-dd","strict":true,"wn":false,"parsable":true,
            "v":{"day":7,"month":2,"year":2012}}],
    "","","ENG"],
    ["tr",{"key":206},"

我想把这个Json变得更像

"domaindom-000000938.co_uk",
    ["17",
        {"id": "PID783","locale": "en_EN",,"strict":true,"wn":false,"v1":"2011-07-02", "v2":"2011-02-07", "v3":"2012-02-07"}],

正如您所看到的,我已删除了几个变量并将日期变量插入相同的子句中。

所以我的不安就是这个。在Vaadin中,我如何修改Vaadin创建Json响应的方式?我目前使用BeanItemContainer来保存我的对象:

public BeanItemContainer getPagedDataSource(){
    List<Object> mylist = DAO.getDAO().createQuery(query, index, max);
    return new BeanItemContainer<Object>(type, mylist);
}

感谢您提供任何帮助或反馈!

/ Marthin

2 个答案:

答案 0 :(得分:1)

首先,JSON是Vaadin内部通信的一部分,您不应该修改它。但是,如果您希望将其检出,则JsonPaintTarget以及创建JSON的相关组件(表)的paintContent方法。

答案 1 :(得分:1)

Vaadin今天以前所未有的方式运作。应用程序中的所有内容都将发生变化,必须发送给客户端。在客户端,每个组件都是单独处理的,因此响应必须解决所有已更改的组件。 表中的每一行都是一个单独的组件,因为答案很长。

我建议的解决方案:

  • 编写自己的表实现 - hard
  • 施加限制 - 容易,但它是假肢