我已经在 Mac OS X 10.5.8 上的 Tomcat 6.0.29 上部署了一个使用 Eclipse(相当于 HelloGWT 示例)的简单国际化 2.0.4 GWT 应用程序,它有一个下拉列表来获取语言环境并根据选择。
它在开发模式下运行良好,无论是在 Firefox 还是 Safari 中。
当部署到 Tomcat 时,在 Safari 中,应用程序具有其所有功能,但只要鼠标指针离开 url 字段,url 字段中的旋转轮就会持续运行。
另一方面,在 Firefox 3.6.10 中,没有这样的行为,但它直接打开了显示用户代理等的问候对话框,就好像点击了按钮一样。
在这两种情况下,我都看不出问题出在哪里。
这是我用来更改网址的代码:
languageBox.addChangeHandler(new ChangeHandler() {
@Override
public void onChange(ChangeEvent event) {
String languageName = languageBox.getValue(languageBox.getSelectedIndex());
UrlBuilder builder = Location.createUrlBuilder().setParameter("locale", languageName);
Window.Location.replace(builder.buildString());
}
});
我在这里做错了什么吗?
提前感谢您的任何提示。
附加信息
我使用 simplePanel 来包装列表框,这样我就可以将它和应用程序的标题放在一起。我想知道这是否可能是 Safari 的问题:
RootPanel.get("applicationName").add(new Label(constants.helloGWT()));
...
// Here comes the definition of languageBox
...
final SimplePanel languagePanel = new SimplePanel();
languagePanel.add(languageBox);
languagePanel.addStyleName("languagePanel");
RootPanel.get("languagePanelContainer").add(languagePanel);
然后在我的html页面中:
<div align="center">
<h1 id="applicationName"></h1>
<div id="languagePanelContainer"></div>
</div>
知道我在这里出错的地方吗?
提前感谢您的任何回答。