这似乎是一项简单的任务,但在搜索文档的某个地方 - 我错过了连接。
我有一个存储在GAE中的菜单,可以返回查询结果:
public String[] getMeals() throws NotLoggedInException {
checkLoggedIn();
PersistenceManager pm = getPersistenceManager();
List<String> meals = new ArrayList<String>();
try {
Query q = pm.newQuery(Meal.class, "user == u");
q.declareParameters("com.google.appengine.api.users.User u");
q.setOrdering("createDate");
List<Meal> myMeals = (List<Meal>) q.execute(getUser());
for (Meal myMeal : myMeals) {
meals.add(myMeal.getMealID());
}
} finally {
pm.close();
}
return (String[]) meals.toArray(new String[0]);
}
有了这些结果,我想将它绑定到FlexTable。使用stockwatcher示例,我设法将我的ID绑定到FlexTable,但是我错过了如何将结果集中的其他字段绑定到它的概念。 (我在GAE中的字段是mealID,mealType和mealDate)
从上面,我们可以看到我正在将feedID扔进List。 我也知道我的其他字段必须存在于查询中,因为我没有做任何事情来过滤它们。事实上,如果我将我的代码更改为:
meal.Add(myMeal.getMealID(),myMeal.getMealType(),myMeal.getMealDate());
它返回所有数据,但是flex表将每个项目视为一行而不是一行中的三个字段。
所以我的问题是:我应该如何捕获我的记录并将它们发送到我的FlexTable,以便我可以将FlexTable绑定到结果集?
供参考,客户端代码:
private void loadMeals() {
// load meals from server service MealService
mealService.getMeals(new AsyncCallback<String[]>() {
public void onFailure(Throwable error) {
handleError(error);
}
public void onSuccess(String[] meals) {
displayMeals(meals);
}
});
}
private void displayMeals(String[] meals) {
for (String meal : meals) {
displayMenu(meal, meal, meal);
}
}
flextable的填充方式如下:
mealID | mealType | mealDate
1 | 1 | 1
2 | 2 | 2
3 | 3 | 3
我希望它填充如下:
mealID | mealType | mealDate
1 |早餐| 2012年12月22日
2 |午餐| 2012年12月22日
3 |小吃| 12/23/2012
提前感谢您的意见!
答案 0 :(得分:0)
此问题与Problems passing class objects through GWT RPC
重复按照该链接中的详细信息,来自oDesk的很少的雇佣帮助让我开始了。 主要的疏忽是需要{appname} .gwt.xml中的入口点类,并将模型类放在共享包中。