0

私は、ユーザーが毎週自分の時間を入力できる Web アプリケーションを構築するつもりであり、ユーザーのアクションに応じてデータで再描画される GWT の単一ページの概念を理解するのに苦労しています。このサイトとグーグルでよく調べたところ、エミュレートしたいリンクが1つ見つかりましたが、GWTでそれを行う方法がわかりません。彼らのソースコードは利用可能ですが、私はそれが完全で完全だとは思いません. このリンクからいくつかのアイデアを得ました - Google Web Toolkit (GWT) の複数ページのチュートリアルですが、それを実際のバージョンに実装する方法がわかりません。1 つの小さな作業サンプルは、理解して開始するのに役立ちます。

以下のリンクを使用して画面のルック アンド フィールを実現する方法と、サーバーからのデータを使用してコンテンツを再描画する方法を教えてください。すべてのロジックを 1 つの EntryPoint クラスに配置する必要がありますか? 左側のナビゲーション パネルにハイパーリンクを配置し、右側のパネルにコンテンツを表示したいと考えています。数時間の調査の後、私は完全に道に迷ったようです。

http://gwt.google.com/samples/Showcase/Showcase.html#!Cwハイパーリンク

どうもありがとうございました。

よろしく、ソヌ。

4

2 に答える 2

0

A single page application layout is actually quite easy to achieve.

The first thing you do is define the general layout, using GWTs layout panels. For your layout, I'd suggest using a DockLayoutPanel.

Content content = new Content();
Button switchContent = new Button(content);
Navigation navigation = new Navigation();
navigation.add(switchContent);

DockLayoutPanel pageLayout = new DockLayoutPanel(Unit.EM);
p.addWest(new HTML(navigation), 7.5);
p.add(new HTML(content));

Here, the width of the navigation panel will be fixed, whereas the content will take the remaining space. You have to pass a reference of the button (or some other widget) which does the switch of the content area, add the button to the navigation area, and so on.

Put this into a class, e.g. called MasterPageFactory:

public class MasterPageFactory {
    private MasterPageFactory() {}

    public static MasterPage newInstance() {

       Content content = new Content();
       Button switchContent = new Button(content);
       Navigation navigation = new Navigation();
       navigation.add(switchContent);

       DockLayoutPanel masterPage = new DockLayoutPanel(Unit.EM);
       masterPage.addWest(new HTML(navigation), 7.5);
       masterPage.add(new HTML(content));

       return masterPage;
    }
}

Now, in your EntryPoint class, call the factory:

RootLayoutPanel.get().add(MasterPageFactory.newInstance());

This example should get you an idea. Other options would be using a DI framework like Guice or the Command pattern.

于 2011-06-10T15:08:14.233 に答える
0

あなたの質問は、いくつかの概念を混同しています。ユーザーにリンクのようなものをクリックしてもらい、それに応じてアプリケーションがサーバーにリクエストを送信し、現在のページとは異なるページを表示し、そのページに取得したばかりの新しいデータが含まれている場合サーバーの場合は、完全に通常のアンカーまたはフォーム送信ボタンが必要です。GWTの特別なものや奇妙なものは必要ありません。

参照したショーケースの例では、ユーザーはリンクのように見え、新しいページをロードしているように見えますが、戻るボタンを期待どおりに機能させることができますが、実際にはサーバーにアクセスして新しいページを取得することはありません。または新しいデータ。

于 2011-06-10T15:13:35.867 に答える