GWT-RPC応用(1)
データクラス(DTO)の授受を行う
上記の例では、メソッドの引数も戻り値もStringクラスでした。しかし、本格的なプログラミングになると、受け渡しするデータは1つだけではありません。また、GWT-RPCではリモートサービスメソッドに渡す引数の数は1つだけです。オブジェクト指向プログラミングでは、データの集合をクラスとみなします。つまり、データの授受を行うデータクラス(DTO:Data Transfer Object)を定義し、それをメソッドの引数ならびに戻り値に設定すればOKです。
DTO設計の際の注意事項
若干不確定情報がありますが、以下の注意が必要です。
- かならずPOJOにする
- 引数なしのコンストラクタを用意する
- ただし、com.google.gwt.user.client.rpc.IsSerializable インターフェースを実装する
- アノテーション等の記述はできない
- 定義したクラスは、かならずclientパッケージに入れる。
2と4は重要です。2について補足しますが、例えば以下のようにします。
import com.google.gwt.user.client.rpc.IsSerializable;
public class user implements IsSerializable {
private Integer id;
private String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
RPCで渡すデータBeanで使えないクラス
- URLクラスは渡せないので、Stringにするしかなさそう