gwt - 同一模块中有多个入口点的问题

标签 gwt module project-structure entry-point

我在同一个模块中有多个入口点。

例如,我有一个主页入口点和一个管理员
管理页面的入口点。

<entry-point class='com.company.project.client.HomeModule'/> 
<entry-point class='com.company.project.client.AdminModule'/> 

我现在的设置方式 - 我需要在我的
OnModuleLoad:
if((RootPanel.get("someHomeWidget")!=null)&& 
  (RootPanel.get("someOtherHomeWidget")!=null)) 
{ 
  // do the stuff 
} 

为了在 Home 时不执行 Admin Entrypoint
页面打开,反之亦然。

不做上面的检查还涉及到如果我有一个 div
无论我注入(inject)什么,主页和管理页面中的名称都相同
它在每个人身上出现两次。

这在1000英里外很臭,显然是错误的:什么是正确的
在人们的经验中如何做到这一点?

任何帮助表示赞赏!

最佳答案

正确的方法是每个模块有一个入口点,将适当的小部件粘贴在适当的 div 中:

RootPanel panel = RootPanel.get("someHomeWidget");
if (panel) panel.add(new HomeWidget());

panel = RootPanel.get("adminWidget");
if (panel) panel.add(new AdminWidget());

这样,它只会扫描页面以查找您拥有的任何 div 并插入适当的小部件。因此,您的 HTML 页面决定了何时显示哪些小部件,并且 GWT 代码已准备好处理任何情况。上面没有什么不好的,这是你的入口点应该写的方式。

另一种选择是,如果您的管理区域和通常区域完全不同(例如:您想在不同的时间加载它们),那么它们应该是单独的模块,具有单独的入口点。

关于gwt - 同一模块中有多个入口点的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/929661/

相关文章:

java - 使用 JRE6 时 GWT servlet 失败

google-app-engine - GWT+UIBinder+Gin+Guice+JDO+GAE实例

javascript - 如果一个JS 6模块被导入到一个页面的多个模块中,那么它的 "main line"代码是否只执行一次?

twitter-bootstrap - 使用 Dart 和 Bootstrap

java - 如何使用WebApplicationInitializer依赖项目?

java - GWT Image path capture using FileUpload 然后将图像存储为MySQL中的Blob

java - 编译 GWT 项目时出现错误 : Could not find or load main class com. google.gwt.dev.Compiler

ruby - 在 Ruby 中命名命名空间的首选方式(更好的风格)是什么?单数还是复数?

android - Gradle 库冲突

include - julia: `include` 文件的推荐方法:顶级文件中的包含列表或嵌套包含?