从ASP.NET 3.5应用程序在IFRAME中运行GWT应用程序(包括Applet)?

时间:2010-02-12 17:13:27

标签: asp.net gwt iframe

我们正在考虑将完整的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对此不起作用!

2 个答案:

答案 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中。