0

こんにちは、初めてgwt(java based gui)です。ここで、GWT サーバー呼び出しを実行しようとしています。

私は私の中に保存MyBeanしたいDatabase

後で私はしなければならないupdate,delete etc..

どのような可能性があり、どうすればこれを達成できますか??

4

1 に答える 1

4

RequestFactoryのようにGWT でデータベースにヒットする可能性がいくつかありますRPC

サーバー呼び出しを開始する前に、次のことを確認してください。

  • GWT RPC (サーバー呼び出しを非同期に行う)

  • RequestFactory (データ指向サービスを作成するための GWT-RPC の代替。 )

リンクをたどった後、ここに RPC の作成方法の例があります。

MyBean CRUD 操作について説明します。要するに、以下のような単純な RPC 構造です。

GWT Code <===> InterfaceAsync <===> Interface (Synchronous)<===> Server Code 

私はあなたとそれ自身の要素を説明しようとしています.

同期インターフェース (RPC 全体の中心):

import com.google.gwt.user.client.rpc.RemoteService;
public interface BeanProcessRPCInterface extends RemoteService
{
    public Mybean processMybeanRPC(Mybean  bean);
}

ASynchronous インターフェイス (クライアントの主要部分):

import com.google.gwt.user.client.rpc.AsyncCallback;

public interface BeanProcessRPCInterfaceAsync
{
    public void processMybeanRPC (Mybean bean, AsyncCallback callback);
}

ここでは、Service「BeanProcessRPCInterface」を実装する (サーブレットに等しい) を使用します。

public class BeanProcessRPCImpl extends 
                   RemoteServiceServlet implements BeanProcessRPCInterface
{
    private static final long serialVersionUID = 1L;

    public Mybean processMybeanRPC(Mybean  bean)
    {
       //Process your widget  here (CRUD operations)

    }

**you can override doget,doPost,doDelete....etc along with your methods 
}

上記のクラスを web.xml にマップします。

     <servlet>
    <servlet-name>beanrpc</servlet-name>
    <servlet-class>com.server.BeanProcessRPCImpl</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>beanrpc</servlet-name>
    <url-pattern>/beanrpc</url-pattern>
  </servlet-mapping>

最後に、GWT コードで以下のようにサービスを使用します。

コードでの使用:

//サービスを登録します。

   private final BeanProcessRPCInterfaceAsync beanService = 
        GWT.create(BeanProcessRPCInterface.class);
        ServiceDefTarget endpoint = (ServiceDefTarget) service;
        endpoint.setServiceEntryPoint('beanrpc');

コールバックでサーバーをリクエストする

beanService.processMybeanRPC(mybean, callback);
 AsyncCallback callback = new AsyncCallback()
    {
        public void onFailure(Throwable caught)
        {
           //Do on fail
        }

        public void onSuccess(Object result)
        {
           //Process successfully done with result (result is which you
           // returned in impl class) .
        }
    };

PS .パッケージ構造に注意してください:

BeanProcessRPCInterfaceAsync 、BeanProcessRPCInterfaceは client* パッケージにある必要があります

MyBeanクラスは shared* パッケージにある必要があります

BeanProcessRPCImpl は server* パッケージに含まれている必要があります

幸運を。

于 2013-03-30T09:46:45.137 に答える