ライフストーリー(序文)
1年前、javascript WebサービスのUIの開発を開始する必要がありました。 時間が経つにつれて、UIは、かなり動的なインターフェイスとかなり大きなビジネスロジックを備えた本格的なシンクライアントに成長しました。 このjavascriptはどのように私を悩ませ始めましたか。
主に3つの問題が目立った
1)継承とカプセル化の欠如。 これはビジネスロジックに深刻な影響を及ぼしました。 もちろん、この問題を解決するためのプロトタイプや他の多くのさまざまなフレームワークがありますが、Javaを使用した後は、すべてがとてつもないように見えました。
2)複雑なUI要素を作成できない。 UIの繰り返し部分を個別のコントロールに取り出して使用し、いくつかの機能を再定義するだけでした。
3)マルチブラウザ。 Firefoxですべてを記述しても、IEで常に機能するとは限りません。 XML解析の違いと、パディングとマージンのスタイルのデフォルト値は、特に魅力的でした。
私の意見では、最初の2つの問題はOOPの不足が原因でした。 明確で直感的。 ソリューションは簡単でした。JavaScript(JS)でJavaトランスレーターを作成します。 構文の観点から見ると、JavaはJSよりもはるかに厳密であるため、翻訳はかなり解決可能なタスクのように思えました。 さらなる調査の後、私は、Googleがすべての問題を取り上げて解決したという事実に驚き、喜びました...
Google Web Toolkit(GWT)。
すべてが非常に簡単です。Java1.4のユーティリティとクラスの標準セット、UIの既製のコントロール、およびGoogleの基本クラスのセットを使用して、Javaでアプリケーションを記述します。 そこには制限がありますが、強すぎません。 通常のGUIアプリケーションに非常に近い。
次に、これらすべてがGWTコンパイラーによってコンパイルされ、出力でjsコードを含むhtmlファイルが取得されます。 デフォルト、オペラ、サファリ、gecko、gecko1.8、ie6の6つのオプションがあります。 これ以上。 ブラウザーごとに、独自のバージョンのコードのみがロードされます。
Java開発者の観点から(だけでなく)、GWTはそのような便利なことをサポートします
1)JavaScriptのJavaコンパイラ
2)デバッグ。
3)マルチブラウザ。
4)モジュールを書く能力。
5)幅広いウィジェット、パネル、コントロール。
6)RPC
7)JUnit
8)国際化/リソースバンディング。
9)JavaScript Native Interface-純粋なJavaScriptに挿入します。 Java javascriptから、またはその逆にプルする機能。
10)JSONなど。
GWT(またはそのプロトタイプ)には、Google Mail、Google Maps、Google Baseが記述されています
GWTは誰のためのものですか?
このフレームワークは、主に何らかの理由でUIを作成するJava開発者に役立つと思います。 GWTは、高レベルの言語とその利点を放棄しない機会を提供します。 IntellijIDEAおよびEcipseにはすでにGWTがサポートされています。
例
パブリッククラスHelloCrazyWorldはEntryPointを実装します
{
public void onModuleLoad()
{
ラベルlabel = new Label(「Click me」);
label .addClickListener(新しいClickListener()
{
public void onClick(ウィジェット送信者)
{
Window.alert( "Hello!");
}
});
RootPanel.get()。追加(ラベル);
}
}
PS。 タグを使用してコードをフレーム化する最善の方法を教えてくれるのは誰ですか?