如何将 GWT 应用程序的各个部分提取到单独对话框的库中
我正在尝试将 GWT 应用程序的各个部分提取到许多可以从 php 调用的单独对话框中。
现有状态: 我们有一个 GWT 应用程序作为 WAR 部署到 JBoss。 该应用程序有一个带有单一入口点的模块。 主 JSP 设置环境,然后有一些 JS 使用 document.write() 加载 .nocache.js; 入口点的 onModuleLoad() 创建一个面板来填充浏览器,并使用 RootPanel.get("root").add() 将其添加到根目录; 来弹出一个对话框
当某些事件发生时(例如,用户按下按钮),我们通过实例化子类并调用 center() 或 setVisible() 所需状态 : 我们想要一个具有多个页面的 php 应用程序,以便能够调用各种 DialogBox 子类。
我认为php端应该使用使用document.write()的JS函数调用; 至于 GWT 方面,我看到的选项是:
- 一个模块具有多个入口点。
- 多个模块。
有谁有任何经验或了解这里的最佳实践是什么?
I'm trying to extract parts of a GWT application into many separate dialogs that can be invoked from php.
Existing state:
We have a GWT appplication that is deployed to JBoss as a WAR.
The app has a single module with a signle entry point.
The main JSP sets up the environment and then has some JS that loads the .nocache.js using document.write();
The entry point's onModuleLoad() creates a panel to fill the browser and adds it to the root using RootPanel.get("root").add();
When some event happens (e.g., user presses button) we pop up a DialogBox by instatiating a subclass and calling center() or setVisible()
Desired state:
We want a php app with multiple pages, to be able to invoke various DialogBox subclasses.
I think that the php side should use JS function calls that use document.write();
As for the GWT side, the options I see are:
- One module with multiple entry points.
- Multiple modules.
Does anyone have any experience or understanding of what would be the best practice here?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果我理解正确的话,您需要从 Javascript 调用 GWT 方法。
您可以使用 JSNI。
但我认为你应该在 GWT 方面尝试 gwt-exporter。 概述。 教程。
这是为 GWT 模块创建 JS_API 的简单 GWT 模块。
不假装是最佳实践,只是简单的例子。
在服务器端,您可以在每个页面上包含一个带有对话框的现有 GWT 模块。
您需要修改此 GWT 模块或创建新的模块,如下所示。
DialogBoxManager 看起来像
@Export("show")、@ExportPackage("pkg") 等中的字符串值。注释将在我们的 JS_API 调用中用于带注释的 GWT 方法(您还可以导出字段)。
您可以只使用@Export(就像我对DialogBoxManager 所做的那样)。
当GWT模块加载到你的JS库中时,你可以实现JS_API成员或你需要的初始化
,然后像这样调用JS_API
If I've understood right, you need to call GWT methods from Javascript.
You can use JSNI.
But I think you should try gwt-exporter on the GWT side. Overview. Tutorial.
It's simple GWT module to create JS_API for your GWT modules.
Not pretending to be the best practices, just quick example.
On the server-side you include an existing GWT module with DialogBoxes on every page.
You need to modify this GWT module or create new like this.
DialogBoxManager looks like this
String values in @Export("show"), @ExportPackage("pkg"), etc. annotations will be used in our JS_API calls for annotated GWT methods (you can export also fields).
You can use just @Export (as I did for DialogBoxManager).
When GWT module is loaded in your JS library you can realize initialization of JS_API member or what you need
and then just call JS_API like this