我想知道将GWT库构建到Javascript库中的最佳方法是什么。当这个要编译成Javascript的GWT库中没有任何GWT服务器端组件时。
简单的前端组件。包括像ajax调用等等。
在Java中,GWT库的使用方式如下:
TheGWTLibrary api = new TheGWTLibrary();
api.setServer("http://www.somewhere/api");
api.post(stuff, new Callback(){
void success(){
}
void fail(){
}
});
api.get(new Callback(){
void success(){
}
void fail(){
}
});
这样GWT库项目可以在任何HTML项目中使用,而不会成为GWT应用程序。
问题是,
答案 0 :(得分:2)
[编辑2016]
使用新版GWT(2.8.0)的方法是使用JsInterop
,阅读documentation API。请注意,它仍然在2.8.0-SNAPSHOT中,但将在几周内发布。此外,2.7.0中的JsInterop已被弃用并在2.8中删除,因此请勿使用它。
[结束编辑]
除了编写JSI方法外,有两种简单的方法可以解决这个问题。
1.- GwtExporter
您可能有兴趣阅读我几年前写的这篇文章:
https://code.google.com/p/gwtchismes/wiki/Tutorial_ExportingGwtLibrariesToJavascript_en
它使用gwt-exporter,你可以使用这种方法看看几个项目:
JsUpload是gwtUpload的一个端口: https://code.google.com/p/gwtupload/wiki/JsUpload_Documentation https://github.com/manolo/gwtupload/tree/master/jsupload
GwtChismes现在是一个非常古老的图书馆,不再维护了,但它也被导出了 https://code.google.com/p/gwtchismes/wiki/JsChismes_Documentation https://code.google.com/p/gwtchismes/source/browse/#svn%2Ftrunk%2FGWTChismes%2Fsrc%2Fjschismes
我还做了一些实验,将gwtquery导出到js(jsQuery): https://code.google.com/p/gwtquery/wiki/JsQuery
Chronoscope是使用这种方法的另一个gwt库 https://code.google.com/p/gwt-chronoscope/wiki/JavaScriptAPI
2.- JsInterop
如果你想玩新东西,你可能会读到JsInterop在GWT-2.7中的beta功能,它将在GWT-3.0中完全发挥作用。
它允许您将java类导出到JS。您必须使用-XjsInteropMode JS
和一些注释。
目前没有那么多文档,但是有一个文档解释了API,以及一个有趣的演示文稿。
https://docs.google.com/document/d/1tir74SB-ZWrs-gQ8w-lOEV3oMY6u6lF2MmNivDEihZ4/edit
答案 1 :(得分:1)
听起来你正在寻找像GWT Exporter这样的东西。它允许您将GWT库导出为可公开访问的JavaScript API。
看起来您仍然需要将GWT库编译为Web应用程序才能使用它,但如果您没有任何服务器端代码,它应该像编译API一样简单,复制战争文件夹并添加对war / [yourapp] .nocache.js。
的引用如果这不是您要找的内容,您可以查看this question以了解其他选项。