• ベストアンサー

配列をセッションに割り当てた後で

javaBeanでDBにアクセスして、取得した値を配列に格納します。その配列をサーブレット側でgetメソッド使って取得し、セッションに割り当てます。その後、JSP側でセッションを通して配列の各要素を取り出し表示させたいのですが<%= session.getAttribute("Date") %>←(Dateが配列)では配列の各要素ではなく配列そのものが取り出されるのか、 [Ljava.lang.String;@737371 のような文字が表示されてしまいます。 セッションで割り当てられた配列の各要素の値の取得のやり方がわかる方どうかご教授お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

setAttribute() で、保存したものがそのまま getAttribute() で取得できる わけですから、配列をセットしていれば、ゲットできるのは配列です。 例えば、一番目の要素の値であれば、 <%= session.getAttribute("Date")[0] %> です。

amuro1980
質問者

補足

やってみたところ [] は配列にのみ適用できます。java.lang.Object には適用できません。out.print( session.getAttribute("Date")[0] ); のエラーがでました。 どうも取り出す以前に配列としてセッションに割り当てられていないみたいです。 セッションに配列を割り当てるやり方はBeanで private String[] Date = null; を宣言してこの中に値を格納し、同じくBeanの public String[] getDATE() {return Date;} のメソッドを使って、サーブレットで session.setAttribute("Date", my_bean.getDATE()); としてセッションに配列を割り当てたつもりだったのですがだめみたいです。もしよろしければどのようにプログラムを修正すればよいか教えてください。

その他の回答 (1)

  • Harry_
  • ベストアンサー率55% (36/65)
回答No.2

配列型にキャストしてから、各要素にアクセスします。 String[] array = (String[])session.getAttribute("Date"); System.out.println(array[0]);

amuro1980
質問者

お礼

うまくいきました。 初歩的な質問に答えてくださってありがとうございました。

関連するQ&A