如何使用 GWT 将许多数据从数据存储区显示到网站

Posted

技术标签:

【中文标题】如何使用 GWT 将许多数据从数据存储区显示到网站【英文标题】:how to display many data from datastore to website using GWT 【发布时间】:2016-03-03 10:45:23 【问题描述】:

我正在尝试使用 GWT 制作一个 Web 应用程序,这是我第一次使用这个工具。我也在使用 GAE 数据存储。我想使用 rpc 调用从我的数据存储区将数据加载到我的 Web 应用程序。我正在使用菜单,当用户选择某些内容时,通过 rpc 调用正确的方法,以便它可以加载正确的数据。我正在使用数组列表保存数据,因为我想在我的网页中显示其中的许多数据。我设法加载了数组列表,但我不喜欢它在网页上的外观。我应该改变什么?我还有其他方法可以做到吗?代码如下:

加载数据的类

List<String>places=new ArrayList<String>();

DatastoreService ds= DatastoreServiceFactory.getDatastoreService();

public List<String> display(String s)

    Query q=new Query(s);
    PreparedQuery pq = ds.prepare(q);
    for (Entity place : pq.asIterable()) 
        String result = place.getProperties().toString();

        places.add(result);

    return places;

我的异步调用

public void onSuccess(Object result) 
        CellList<String> cellList = new CellList<String>(new TextCell());
        final ListDataProvider<String> dataProvider = new ListDataProvider<String>();
        dataProvider.addDataDisplay(cellList);
        final TextBox valueBox = new TextBox();

         List<String> list = dataProvider.getList();
         list.add(result.toString());

         VerticalPanel vPanel = new VerticalPanel();
         vPanel.add(cellList);
         RootPanel.get().add(vPanel);
    

【问题讨论】:

【参考方案1】:

除非您进一步操作结果字符串,否则调用place.getProperties().toString() 看起来并不好,这是复杂且不必要的。

您需要创建一个 Java 类来表示您的 Place 实体,并返回这些 Place 对象的 ArrayList 而不是字符串。然后,您可以控制要显示的属性以及如何显示它们。

【讨论】:

所以在我的代码中代替这一行: for (Entity place : pq.asIterable()) String result = place.getProperties().toString();地方。添加(结果); 返回位置;我应该把实体放在我的数组列表中。对吗? 您需要将 Datastore 实体转换为您自己的 Place 类的对象。

以上是关于如何使用 GWT 将许多数据从数据存储区显示到网站的主要内容,如果未能解决你的问题,请参考以下文章

将许多 PropertyList 放入 Google App Engine 数据存储区(在 Go 中)并使用 Query.GetAll 再次加载它们

GWT 项目在部署时不会从 RPC 加载数据

谷歌云数据存储。如何服务数据?

GWT 应用程序的数据存储位置 - GAE 数据存储或 XML 文件

如何从BigQuery导出到Datastore?

将图像从GitHub上传到WordPress网站