7

GWT にはEditor Frameworkがあり、簡単に調べてみると、Spring MVC/Forms がバックエンド データ オブジェクトとフロントエンド UI コンポーネントの間のデータ バインディングを処理する方法と非常によく似ています。

私は最初の GWT/GAE アプリケーションを作成していますが、このエディター フレームワークを GAE の JDO/Atomic ライブラリと組み合わせて使用​​する方法があるかどうか疑問に思っていました。これは、アプリと基礎となるデータストア間の O/R マップに対してコーディングする API です。 .

これら 2 つのフレームワークは補完的ですか、それとも相互に排他的ですか? それらが連携して動作する場合は、<select>名前のリストを含む HTML ボックスなど、基本的でありながら実用的なものを作成するためにそれらを使用する方法の小さなコード サンプルを提供してください。

おそらく、PersonJDO /Atomic を使用してデータストアとの間でインスタンスを CRUD し、インスタンスをフロントエンドにマップできるようなものです。String namePersonDAOPersonEditor<Person>Person<select>

実際の例を見ることができれば、すべてがまとまると思います。そして、これらが相互に排他的で一緒に使用できない場合は、その理由をしっかりと説明していただければ幸いです。前もって感謝します!

4

2 に答える 2

1

これがお役に立てば幸いです。これは、GAEデータストアにデータを格納するサンプルコードです。これは、データを取得してGWTドロップダウンにコンテンツを入力するための簡単なクエリです。

AppEngineデータストアに保持されるJDOORMは次のとおりです。

https://github.com/bsautner/com.nimbits/blob/master/nimbits-tds/src/com/nimbits/server/orm/EntityStore.java

オブジェクトのリストをデータストアにクエリする例を次に示します。

@Override
    public List<Entity> getEntityByName(final User user, final String name) 
{
        final PersistenceManager pm = pmf.getPersistenceManager();

        try {
            final Query q1 = pm.newQuery(EntityStore.Class);
            final List<Entity> c;

                q1.setFilter("name==b");
                q1.declareParameters("String b");
                q1.setRange(0, 1);
                c = (List<Entity>) q1.execute(name);

            if (c.isEmpty()) {
                return Collections.emptyList();
            } else {

                final Entity result = c.get(0);
                return createModel(user, result);

            }

        } finally {
            pm.close();
        }
    }

これは、ORMモデルから作成されたPOJOが入力されるGWT(GXT)ベースのコンボボックスです。

https://github.com/bsautner/com.nimbits/blob/master/nimbits-tds/src/com/nimbits/client/ui/controls/EntityCombo.java

于 2012-10-31T20:52:19.277 に答える
0

IE6とHTML4の時代には、GMailほどクールなWebアプリを作成する方法はありませんでした。そのため、GWTが導入され、目標が達成されました。GMailはどのブラウザでも機能することができました。

私たちの時代には、GWTがリーダーシップを失ったように見えます。jQueryは、ハードウェアアクセラレーションを使用し、はるかに高速に動作するため、より一般的になりました...しかし、GWTを忘れるのはまだ早いです。

EditorフレームワークとJDOを使用したい場合は、それらの間にボトルネックがあることを強調する必要があります:GWTRPC。RPCはPOJOを毎回シリアル化および逆シリアル化しますが、このシリアル化/逆シリアル化をカスタマイズする方法は非常に限られています。

GWT RPCのこの欠点により、ほとんどの開発者はPOJOの2つの同一の階層を維持する必要があります。1つはJDO / Hibernate用で、もう1つはGWT用です。通常、上司はこのソリューションを承認します。これは、すべてのRPC呼び出しをハッキングして機能させるよりも高速で簡単だからです。そして、私が見たほとんどの現実世界のプロジェクトには、2つの階層があります...

一方、jQueryではPOJOを定義する必要はまったくありません。明らかに、それは開発のスピードの違いの理由です。

回答がないことをお詫び申し上げます。あなたが盲目の路地にいると言っても、私の考えが役立つことを願っています。また、経験豊富な建築家がGWTを使用することを決定し、この盲目の路地にもたどり着いたことを何度か見ました。そして今、彼らは2つの同一のPOJO階層を書くことに時間とお金を費やすことによって、この間違いの代償を払っています。

于 2012-10-31T21:33:30.637 に答える