2

Mac OS X10.5.8のTomcat6.0.29に、Eclipseを使用した単純な国際化された2.0.4 GWTアプリケーション(HelloGWTサンプルと同等)をデプロイしました。このアプリケーションには、ロケールを取得し、それに応じてURLを置き換えるドロップダウンリストがあります。選択。

FirefoxまたはSafariのいずれかで、開発モードのときに正常に動作します。

Tomcatにデプロイすると、Safariでアプリケーションにすべての機能がありますが、マウスポインタがurlフィールドを離れるとすぐに、urlフィールドの回転したホイールが継続的に実行されます。

一方、Firefox 3.6.10では、そのような動作はありませんが、ボタンをクリックしたかのように、ユーザーエージェントなどが表示される挨拶ダイアログボックスが直接開きます。

どちらの場合も、どこに問題があるのか​​わかりません。

URLを変更するために使用するコードは次のとおりです。

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>

ここで間違いを犯したアイデアはありますか?

回答ありがとうございます。

4

1 に答える 1

0

この簡単な例は、私にとってはうまく機能します。

    public void onModuleLoad() {
        final ListBox languageBox = new ListBox(false);
        languageBox.addItem("en");
        languageBox.addItem("de");
        languageBox.addItem("fr");

        languageBox.addChangeHandler(new ChangeHandler() {

            @Override
            public void onChange(ChangeEvent event) {
                String languageName = languageBox.getValue(languageBox.getSelectedIndex());
                UrlBuilder url = Window.Location.createUrlBuilder().setParameter("locale", languageName);
                Window.Location.replace(url.buildString());
            }
        });

        RootPanel.get().add(languageBox);
    }

これはうまくいきますか?

于 2010-10-15T13:52:18.270 に答える