GWT有一个Editor Framework,经过粗略的检查,看起来非常像Spring MVC / Forms如何处理后端数据对象和前端UI组件之间的数据绑定。
我正在编写我的第一个GWT / GAE应用程序,并想知道是否有任何方法可以将此编辑框架与 GAE的JDO / Atomic库结合使用,这是您编写的针对O的API / R在您的应用和基础数据存储区之间映射。
这两个框架是互补的还是相互排斥的?如果他们可以一起工作,有人可以提供一个小代码示例,说明如何使用它们来填充一个带有名单列表的HTML <select>
框,或者其他基本但实用的东西。
我认为这可能涉及Person
POJO代表一个人(并且具有String name
属性),也许某种PersonDAO
使用JDO / Atomic到CRUD {{1}来自/来自数据存储区的实例,然后是可以将Person
个实例映射到前端Editor<Person>
的某种Person
。
如果我能看到一个有效的例子,我想这一切都会为我而来。并且,如果这些是彼此排斥的并且不能一起使用,那么为什么非常赞赏的可靠解释!提前谢谢!
答案 0 :(得分:1)
我希望这会有所帮助,这是一些将数据存储在GAE数据存储中的示例代码,一个简单的查询来获取数据并使用内容填充GWT下拉列表。
这是一个持久存储到app引擎数据存储的JDO ORM:
以下是查询数据存储以获取对象列表的示例
@Override
public List<Entity> getEntityByName(final User user, final String name)
{
final PersistenceManager pm = pmf.getPersistenceManager();
try {
final Query q1 = pm.newQuery(EntityStore.Class);
final List<Entity> c;
q1.setFilter("name==b");
q1.declareParameters("String b");
q1.setRange(0, 1);
c = (List<Entity>) q1.execute(name);
if (c.isEmpty()) {
return Collections.emptyList();
} else {
final Entity result = c.get(0);
return createModel(user, result);
}
} finally {
pm.close();
}
}
这是一个基于GWT(GXT)的组合框,填充了从ORM模型创建的POJO
答案 1 :(得分:0)
在IE6和HTML4时代,没有办法像GMail那样编写酷炫的网络应用程序。这就是为什么推出GWT并实现目标的原因:GMail能够在任何浏览器中工作。
在我们的日子里,看起来GWT失去了领导力。 jQuery变得更受欢迎,因为它使用硬件加速并且工作得更快......但是忘记GWT还为时尚早。
如果你想使用编辑器框架和JDO,我们需要强调它们之间存在瓶颈:GWT RPC。 RPC每次都会对POJO进行序列化和反序列化,并且您可以通过非常有限的方式自定义此序列化/反序列化。
GWT RPC的这个缺点迫使大多数开发人员维护两个相同的POJO层次结构:一个用于JDO / Hibernate,另一个用于GWT。通常老板会批准这个解决方案,因为它比黑客攻击每个RPC调用更快更容易。在大多数现实世界的项目中,我看到有两个等级......
另一方面,jQuery根本不需要定义任何POJO。显然,这是发展速度不同的原因。
对不起,我没有提供任何答案。我希望即使只是你在死胡同里,我的想法也会有用。而且我已经多次看到非常有经验的建筑师决定使用GWT并进入这个死胡同。而现在他们花费时间和金钱来编写两个相同的POJO层次结构来为这个错误付出代价。