如何在GWT上添加外部JavaScript库?

时间:2013-01-03 15:29:36

标签: java javascript html gwt wrapper

我正在为GWT使用OpenLayers包装器,名为GWT-OpenLayers

在用户参考页面上,它表示您需要在两个文件上添加引用,gwt.xml和.html

在xml:

上是这样的
 <inherits name='org.gwtopenmaps.openlayers.OpenLayers'/>

和html上的这个

 <script src="http://openlayers.org/api/2.11/OpenLayers.js"></script>

GWT-OpenLayers有一个展示,我正在做的展示。但是当应用程序启动并且我尝试检查源代码时,我没有在html上看到openlayers脚本。我试图添加其他脚本但不幸的是,脚本没有出现在源代码中 更新01 - html和浏览器结果:

 <head>
  ...
    <script src="http://www.openlayers.org/api/OpenLayers.js"></script>
    <script type="text/javascript" language="javascript"
        src="GeoStatistics/GeoStatistics.nocache.js"></script>
    <script type="text/javascript" src="ol/OpenLayers.js"></script>
    <script src="http://www.openstreetmap.org/openlayers/OpenStreetMap.js">
    </script>
 </head>

浏览器= Chrome enter image description here

正如您所看到的,在html上添加了几个脚本,但只出现了一个脚本。

更新02 - 编译后,仍无法正常工作 我刚刚编译了我的项目,而html仍然没有脚本标记。

但是我编辑了html并加载了项目,我有了脚本标签。所以,这是一些解决方案,如果没有任何其他方式用我的脚本标签生成html,我可以在编译后放置标签。

2 个答案:

答案 0 :(得分:2)

脚本被加载到应用程序上下文中。您可以将FireFox与FireBug或In Chrome Dev Tools一起使用。添加gwt开放层展示的屏幕截图,如FireBugs脚本选项卡中所示。

enter image description here

步骤1 - 确保gwt-openlayers-client处于托管模式和部署模式编译的GWT项目类路径中

步骤2 - 在gwt模块xml文件中

<inherits name='org.gwtopenmaps.openlayers.OpenLayers' />

第3步 - 在html head标签中

<script src="http://openlayers.org/api/OpenLayers.js"></script>
<script src="http://openstreetmap.org/openlayers/OpenStreetMap.js"></script>
<script type="text/javascript" language="javascript"
    src="GeoStatistics/GeoStatistics.nocache.js"></script>

第4步 -

public void onModuleLoad()
    {
        MapOptions mapOptions = new MapOptions();
        MapWidget mapWidget = new MapWidget( "400px", "300px", mapOptions );

        OSM osm_1 = OSM.Mapnik( "Mapnik" );
        OSM osm_2 = OSM.CycleMap( "CycleMap" );

        osm_1.setIsBaseLayer( true );
        osm_2.setIsBaseLayer( true );

        LonLat lonLat = new LonLat( 6.95, 50.94 );
        lonLat.transform( "EPSG:4326", "EPSG:900913" );

        Map map = mapWidget.getMap();
        map.addLayer( osm_1 );
        map.addLayer( osm_2 );
        map.addControl( new LayerSwitcher() );
        map.addControl( new MousePosition() );
        map.setCenter( lonLat, 12 );
        RootPanel.get().add( mapWidget );
    }

答案 1 :(得分:-1)

发现问题。

maven的GWT插件没有编译我的主.html(gwt:compile)

但是,这不是一个真正的问题,因为主要的html几乎没有更新,所以,只需将新的.html放在我的文件夹上,这是一个解决方案,不是很好,而是一个解决方案。