2011-03-29 69 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