2011-03-29 70 views
0

Im使用Vaadin作为框架来表示我的应用程序的表示层。 我在Vaadin表列表中遇到了麻烦。我加载1000行5列(是的,我需要加载所有1000,也有一个选项加载更少。=)),但使用Vaadin时这不是很快。当我看着Json发送时,我意识到有很多变量我不会被发送到everu表行。Vaadin编辑json响应

这是我到现在为止的响应:

"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"}], 

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

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

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

感谢您的任何帮助或反馈!

/Marthin

回答

1

首先,JSON是Vaadin内部沟通的一部分,你不应该修改它。但是,如果您想检查它,那么JsonPaintTarget以及创建JSON的组件的paintContent-method(表)就是。

+0

Vaadin我决定离开Json一个人。你说得对,我对json感到厌烦。 Thx帮忙! – Marthin 2011-04-01 13:54:50

1

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

我提出的解决方案:

  • 写自己的实现表 - 硬
  • 的限制措施 - 容易,但这样经过长时间的考虑,在与人交谈,这是假体
+1

我决定写我自己的表。但不幸的是,我不能格式化JSON数据。无论如何,Thx为您提供帮助! – Marthin 2011-04-01 13:53:42