我目前正在我的应用中充分利用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
文档明确指出“提供文件系统抽象”是一个非目标,所以不幸的是,这似乎不允许我正在尝试做的事情。
处理运行时必须提供的大量外部资源的最佳方法是什么?生成器是否有帮助?
答案 0 :(得分:1)
CssResource
有一个automatic generator - 也许您可以查看its code并根据自己的需要对其进行修改?
答案 1 :(得分:0)
我最终跟随this advice:在服务器上执行文件操作,然后通过RPC调用返回文件(元)数据的列表。
事实证明这很简单,并且还允许我在列表中返回轻量级引用(文件名),我用它来填充Tree
客户端;当用户点击TreeItem
时,会下载实际的文本内容。