まえに、「データアクセスと処理との間の中間層のインターフェースは、ハッシュマップとその配列に集約する」 というのを書いたけど、そうすると、何がいいのか?について書かなかった。
たとえば、Strutsで考えると、これらハッシュマップと、ハッシュマップの配列をsessionにいれておくと、
画面のJSP内で、strutsタグで、
●ハッシュマップであれば、
<bean:write name="セッション名" property="ハッシュマップのキー値" scope="session" />
で、ハッシュマップの値が出力できる。
●一方、ハッシュマップの配列やハッシュマップのArrayListをセッションに入れた場合は、
<logic:iterate id="変数名" name="セッション名" scope="session" indexId="インデックス変数">
<bean:write name="変数名" property="ハッシュマップのキー値" />
</logic:iterate>
レコード分、ハッシュマップのキー値を書き出す。
何レコード目かを出す場合は、インデックス変数を出力する、つまり
<logic:iterate id="変数名" name="セッション名" scope="session" indexId="インデックス変数">
<bean:write name="インデックス変数名" />
</logic:iterate>
でOK(このとき、昨日書いたエラーになることあり)
(ここまで < > は、本当は半角)
ということは、つまり、
SQLを引数として渡すと、結果をハッシュマップの配列で返すメソッドがあれば、
StrutsのActionで、入力値などから、そのクラスを呼び出し、
その結果をセッションに入れて、
次画面JSPで、上記のように記述すれば、
SQLを考えるだけで、あとは自動的に、画面上にデータを出力させることが出来ます。
っていうメリットがあるんですねえ・・・
つまり、入出力のインピーダンスを大幅に提言することが出来る。