今回はjspファイルから配列インスタンスの特定値の受け渡しについてです。
初心者の私はここでつまづきました。
配列インスタンスをsessionスコープにセットしてサーブレットクラスからjspファイルに受け渡し表の一覧を表示するという所まではうまくいきました。
その後詳細ページを作成するために一覧の中にリンクを埋め込みそのリンクから詳細ページに飛ぶというプログラムを作成しようと考えました。
その際につまづいたポイントが「配列にいれた値ってどうやって指定するの?」という点です。
値を持った通常の参照インスタンスであれば簡単なのですが、配列だと配列インスタンスのままサーブレットへ送っても値が指定されていないので詳細ページは取得できません。
なんとか問題が解決出来たので、備忘録としての残して起きます。
解決法
最初に今回解決への決めてとなった答えをお伝え致します。
それが下記の文の赤マーカー部分にあります。
「<a href=“<%=request.getContextPath()%>サーブレットのパス?name=${配列インスタンス名.name}”><c:out value="${配列インスタンス名.id}"></c:out></a>
文の?=ではdoGetメソッドを行った際にサーブレットへ指定した値を送ることが出来ます。
文の意味としては配列インスタンス名にセットされた名前をクリックすると配列インスタンス名にセットされた名前をnameに入れてサーブレットのdoGetメソッドへ渡します。
という意味になります。
あとはサーブレット側で、
String name = request.getParameter("name");
を記述すればクリックされた”name”の指定の値を受け渡すことが可能となります。
すべてはお見せできませんがプログラムの一部写真も参考にして下さい。
jspファイルのページの一部
サーブレットクラスのページの一部
まとめ
doGetでの値の受け渡しについては昔勉強していたのですが、使用しない事でこんなに便利で重要な機能なのにをすっかりと忘れてどうやって値をわたせばよいか一晩中考えていました。
今回のつまづきで復習することが出来たので次回はつまづかず作成して行けると思います。
本日もお読み頂きありがとうございました。
駆け出しエンジニアけいこ♂
コメント