ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

サーブレット部分をパターン化、自動生成すると、生産性は上がると思う(3)

2007-08-14 20:47:22 | 開発ネタ

まえに、こんな題で、2回、書いていたと思う。

 なんで、この話、つづきを書いてしまおうと思う。
 今回は、

(2)処理は、そのハッシュマップを、POJOクラスのメソッド
   にわたす(そのクラス、メソッドは任意。
   なので、そこの呼び出しは書く)

について。




■サーブレットの処理をPOJOにする

 前回の話で、サーブレットのセッションと引数の値を全部、ハッシュマップにいれました。

 なので、処理部分は、そのハッシュマップを引数として、結果をもらえばいいことになります。

 つまり、処理部分に対し、たとえば、Shoriというクラスを作って、
 executeというメソッドで、実行するとすると、

Shori shori = new Shori();
 int ret = shori.execute(map);

 で、すむことになります。正常終了のときは、0,
 異常のときは、それ以外の値が入ることとします。

 shoriクラスの中で、たとえば、
  shori1(String val1,String val2);
 みたいなものが定義されていて、
 public int execute(HashMap map)
 {
   return shori1((String)map.get("val1"),(String)map.get("val2"));
 }

 のような形で、引数を明示するメソッドをつくり、それを呼び出して処理してもOKですし、executeの中で処理してもOKです。
 とにかく、このShoriクラスのように、なにも継承されていないクラスにすることで、画面などの方法に依存しないで開発、テストできるクラスがつくれます。

 それと、 
Shori shori = new Shori();
 int ret = shori.execute(map);
 の型にもってくることで、自動生成も簡単にできるようになります。




■検索の場合は、Vectorを受ける関数

 で、これ、更新などの処理のときには便利なのですが、検索のときは、返り値に検索結果を受け取ったほうが便利です。
 なので、

Shori shori = new Shori();
 Vector recList = shori.executeSelect(map);

 のかたちのほうが便利です。
 recListの1要素が1レコード分になっていて、HashMapがはいっています。
 HashMapのキーが項目名で、値が、そのレコードの項目値です。

 この場合、エラーが起きたら、recListはnull
 (1件もない場合、recListの件数が0)とします。
 理由もとりたい場合は、mapのerrmsgとか
 (いや、キーは、なんでもいいんですけどね)の中に入れておいて、
 recListがnullの場合、
 String errMsg = (String)map.get("errmsg");
 でとってくるとします。




■セッションにいれる場合

 セッションに入れる場合は、Shoriクラスでおこなっては「いけない」
わけです。そうするとpojoにならないので。

 そこで、mapの中に入れて、Shoriクラスのメソッドから出て、
サーブレットにきたところで、セッションにいれるか、

mapの1要素に
  キーsessionset 値 HashMapでセッションに入れるもののキーと値

 みたいにして、Shoriクラスのメソッドから出て、
サーブレットにきたところで、sessionsetをとってきて、
その中身をセッションにいれれば、自動化できるので、
いいかも(^^)




ということで、次回のこのシリーズは、

(3)画面への出力は
    ・JSPなら、セッションに値を渡す
    ・XMLなら、ハッシュマップに入れている値からとってくる

についてかきます。
この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 開発の初めから順番に書いて... | トップ | サーブレット部分をパターン... »
最新の画像もっと見る

開発ネタ」カテゴリの最新記事