如何使用 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 再次加载它们