我们正在考虑将完整的GWT(Google Web Toolkit 2.0)应用程序与现有的ASP.NET 3.5应用程序集成。我的第一个直觉反应是,这是一个可怕的弗兰肯斯坦的想法。但是,客户坚持要求我们使用由第三方开发的此应用程序。
我对GWT应用程序的开发几乎没有任何控制权。
我的第一个想法是实际尝试将其嵌入到iFrame中。因为GWT在Tomcat / Jakarta下运行,所以它托管在与.NET应用程序不同的服务器上,因此iFrame src将是另一台机器上的URL。
我需要利用自己的ASP.NET授权方案来限制对嵌入式GWT应用程序的访问。 GWT应用程序还使用嵌入式Java小程序,这些小程序现在似乎在iframe中不起作用。 GWT应用程序调用后端服务器(使用GWT-RPC?)。
任何人都可以看到这种方法的任何重大问题? GWT是否可以在托管在不同计算机上的iframe上运行?
注意:简单地添加具有相同名称的DIV对此不起作用!
答案 0 :(得分:6)
为了阐述Tony所说的话,GWT可以在任何页面上生存。在最低级别,GWT通过其ID或div
元素挂钩body
作为其RootPanel
,并从那里添加小部件。
只需在您的ASP页面添加div,如<div id="gwt-root" />
,在GWT代码中,以RootPanel root = RootPanel.get("gwt-root")
开头。然后,您可以开始向该面板添加小部件,以构建页面的GWT部分。
您还需要使用script
标记引入GWT生成的代码,如下所示:
<script type="text/javascript" src="gwt-app-name/gwt-app-name.nocache.js">
此外,如果您愿意,GWT可以使用JSNI使用常规JavaScript与页面的其余部分进行交互。
答案 1 :(得分:1)
您不需要IFRAME。 Writeyour应用程序,以便主面板托管在具有特定ID的div中。如果您的ASP.net可以提供具有相同ID的div,那么您所要做的就是包含生成的JavaScript文件(+一些样式表),您的应用程序将显示在div中。