基于磁盘文件的自动GWT ClientBundles

时间:2010-10-09 02:46:34

标签: gwt clientbundle

我目前正在我的应用中充分利用GWT的ClientBundles。它工作正常,但我有大量的资源,为每个文件手动创建Java接口变得很繁琐:

@ClientBundle.Source("world_war_ii.txt")
public ExternalTextResource worldWarII();

@ClientBundle.Source("spain.txt")
public ExternalTextResource spain();

@ClientBundle.Source("france.txt")
public ExternalTextResource france();

我希望能够(可能在编译时)动态列出给定目录中的每个* .txt文件,然后对它们进行运行时访问,可能是作为数组ExternalTextResource[],而不是而不必在我的代码中明确列出它们。可能有数百个此类资源,并且手动枚举它们,因为代码会非常痛苦且无法维护。

ClientBundle文档明确指出“提供文件系统抽象”是一个非目标,所以不幸的是,这似乎不允许我正在尝试做的事情。

处理运行时必须提供的大量外部资源的最佳方法是什么?生成器是否有帮助?

2 个答案:

答案 0 :(得分:1)

CssResource有一个automatic generator - 也许您可以查看its code并根据自己的需要对其进行修改?

答案 1 :(得分:0)

我最终跟随this advice:在服务器上执行文件操作,然后通过RPC调用返回文件(元)数据的列表。

事实证明这很简单,并且还允许我在列表中返回轻量级引用(文件名),我用它来填充Tree客户端;当用户点击TreeItem时,会下载实际的文本内容。