- - PR -
sessionに配列を登録したい
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-01-21 05:03
sessionに配列を登録したいのですがうまくいきません。
servletで session.setAttribute(bought[visited],cago); とし jspにて String boughted = (String)session.getAttribute(bought[i]); out.println(boughted); としたいのですが、jspにてboughtが見つからないとエラーが出ます。 どうすればいいのでしょうか? |
|
投稿日時: 2007-01-21 13:13
bought[visited] も cago も配列ではないですよね?
#bought が多次元配列なら話は別ですが ・session に登録する属性名に配列の要素を使いたい場合 サーブレットの bought[visited] と jsp の bought[i] の値が異なっているはずです。 デバッガでアタッチするなりダンプするなりして確認しましょう。 ・session に登録する属性値に配列の要素を使いたい場合 jsp で利用したい値が bought[visited] なのであれば、setAttribute の一つ目の引数に cago を、二つ目に bought[visited] をもってきます。取得するときは getAttribute(cago) ですね。 大抵サーブレット側と jsp 側で名前をあわせるので attribute 名はハードコードしますが。 ・session に配列そのものを登録したい場合 配列なのは bought ですから、添え字はいらないです。 サーブレットで session.setAttribute("属性名",bought) jsp で (String[])session.getAttribute("属性名") といった形で設定、取得できます。 #どうでもいいですが、 boughted って英語的にちょっと変です^^; [ メッセージ編集済み 編集者: インギ 編集日時 2007-01-21 13:14 ] |
|
投稿日時: 2007-01-22 11:48
インギさんが解説されていますので端的に要点を。
String[] hoge = new String[5]; とした場合、hogeの型はString[]ですが、 hoge[1]の型はStringですね。 Java言語は型に対して強い制約を持っています。 型が合っていないとコンパイルの時点で怒られますね。 どこでどの変数が何型になっているかを注意して考えるとよいですよ。 |
1