質問: servletからjspへオブジェクトの配列情報を送る方法 いつもお世話になっております。echo2002です。 さて、今回は以下のような処理を行いたいのですが、可能なのでしょうか? ”servletで作成したオブジェクトの配列をjspにforwardして表示させる” こんなような処理を考えています。 構成:filelistservletクラス, fileinfomationクラス, disp.jsp fileinfomationクラスではファイル名やファイルサイズなどの情報を持ち、 それぞれgetなどのアクセサメソッドを持つとします。 filelistservletクラスでの処理 fileinfomationクラスの配列を作成し、各情報をsetする。 httpservletrequestにsetattributeでfileinfomation情報を付加し、 disp.jspへforwardする。 ※以下の方法を考えています。 request.setattribute("fileinfo1", fileinfo[0]); request.setattribute("fileinfo2", fileinfo[1]); request.setattribute("fileinfo3", fileinfo[2]); ・・・ (配列でsetattributeできるのかわからなかったので、 とにかくファイルの数分setattributeしてみました) getservletcontext().getrequestdispatcher("/disp.jsp").forward(req, res) わからないこと: disp.jspでどのようにfileinfomationの情報を取得し、 内容を参照できるのかがよくわからないのです。 jspの暗黙オブジェクトrequestを使用して、request.getparameterをすると、 返ってくる値がstringのようなので、fileinfomationクラスにならないんですよね? 突っ込みどころ満載の質問かと思いますが、何かアドバイス頂ければと思います。 オブジェクトの配列をsetattributeしてjspで読み出せる方法があれば、 それもご教授いただけますでしょうか。 よろしくお願いいたします。jsp難しいです・・・。
回答: まず、fileinfoの配列ですが、配列ではなく vecterやlistなどの可変長配列にセットしていって みてはいかがでしょう? ※例えばvecter vecter vecdata = new vecter(); :(vecterオブジェクトにセット) request.setattribute("fileinfo1", vecdata ); サーブレット側ではこうなります。 jsp側ではvecterのオブジェクトを用意してあげて キャストしてあげてください。 vecter = (vecter)request.getattribute("fileinfo1"); こんな感じ。どうでしょうか?