
こんにちは。
少し文が長いですがよろしくお願いします。
AccessのDBから取得したint型の値を、セッションを使って保持したいのですが
while(rs.next()){
String name = rs.getString("NAME");
int value = rs.getInt("VALUE");
HttpSession session1 = req.getSession(true);
HttpSession session2 = req.getSession(true);
session1.setAttribute("Name", name);
session2.setAttribute("Value", value);
dispatcher2.include(req, res);
}
のコードの
session2.setAttribute("Value", value);
でコンパイルエラー
DBAccess.java [37:1]
javax.servlet.ServletRequest の setAttribute(java.lang.String,java.lang.Object) は (java.lang.String,int) に適用できません。
がでてうまくいきません。
セッションを使ってint型の値の保持を行うにはどうすればよいのでしょうか?
No.6ベストアンサー
- 回答日時:
>java.lang.NullPointerException
と言っていると言う事は、この場合、session.getAttribute("Value") で正しい
値が取得出来ていないと言う可能性があります。nullが返って来ているとか。。。
と、言う事は、setAttribute でちゃんと値をセット出来ていないか、セッションが切れちゃってるとか。。。
あ、それより、代入先の配列の宣言に問題があるとかは無いでしょうか?
配列は、ちゃんと、確保されていますか?
最初の補足欄では、配列の要素数を指定していませんでしたが。。。
可能性は、いろいろと考えられるので、ここでは、「これ!」と言う事は出来ません。
いろいろと調べてみて下さい。
原始的ですが、一行ごとに変数の値を表示する等してみれば、案外すぐにどれが問題なのかが
分かる場合が多いです。
>getValue()/putValue()は非推奨メソッドになりました。今のJ2EEでは通りません。
そうなんですか。。。
非推奨になっているんですか。。でも、非推奨だったら、通らないことは無いんじゃないですか?
推奨しないだけでは。。。?
でも、使わないに越したことは無いって言うことですね。
訂正ありがとうございました。
ご指摘どおり配列の宣言に問題がありました。
配列の初期化をやっていなかったためうまくいかなかったみたいですね。
度重なる質問に回答をくださってありがとうございました。
No.5
- 回答日時:
getValue()/putValue()は非推奨メソッドになりました。
今のJ2EEでは通りません。参考URL:http://java.sun.com/j2ee/sdk_1.3/techdocs/api/ja …
No.4
- 回答日時:
すみません。
。。適当なもので。。。<% pa[count] = ((java.lang.Integer)(session.getAttribute("Value"))).intValue(); %>
これでどうでしょう?
括弧が少なすぎました。。。
試してみて頂けますか?
この回答への補足
試してみたところ
Apache Tomcat/4.0.3 - HTTP Status 500 - Internal Server Error
type Exception report
message Internal Server Error
description The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request.
exception
java.lang.NullPointerException
内部サーバーエラーなるものがでてきました。
これはどういったエラーなのでしょうか。
プログラムの組み方によってよくでてくるのですが。
No.3
- 回答日時:
1行でするなら、
<% pa[count] = (java.lang.Integer)(session.getAttribute("Value")).intValue(); %>
かな。
putValue() じゃ駄目ですか。。。
以前、私も同じ事をした様な気がするんですけど。。。
この回答への補足
修正したら
この型は = には不適合です。
java.lang.Integer から int には変換できません。
pa[count] = (java.lang.Integer)(session.getAttribute("Value")).intValue();
メソッド intValue() は class java.lang.Object で見つかりません。
pa[count] = (java.lang.Integer)(session.getAttribute("Value")).intValue();
のサーバーエラーがでてきました。
なかなか難しいです。
No.1
- 回答日時:
第2引数がObjectということは、参照型の引数を取るということなので、
intをInteger型に変換したら良いと思うのですが、不都合ですか?
この回答への補足
session.setAttribute("Value", new Integer(value));
に変更したらコンパイルは通りました。
その後JSPでその値をint型の配列に格納していきたいのですが
<%! int pa[]; %>
<%! int count = 0; %>
<%= session.getAttribute("Name") %>
<% pa[count] = session.getAttribute("Value"); %>
<%= pa[count] %>
<% ++count; %>
のgetAttributeのところでサーバーエラー
この型は = には不適合です。java.lang.Object から int には変換できません。
がでます。
Objectからintに変換する方法があったら教えてください。
お願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【C#】ハッシュテーブル(連想...
-
[Ljava.lang.Stringってなんですか
-
この警告はどうすれば?
-
【Ajax通信&Java】配列の受け取...
-
strutsでの配列の扱い方について。
-
C言語でunsigned char配列を連...
-
javaでEUC-JP文字列→UTF-8への変換
-
Javaで文字と数字が混ざったも...
-
配列をセッションに割り当てた後で
-
同じ配列またはクラスを、2回...
-
String型をbyte型へ
-
jspでの二次元配列
-
C#で配列の戻り値について
-
C言語のポインターに関する警告
-
IF関数でEmpty値を設定する方法。
-
ORA-01858: 数値を指定する箇所...
-
ループ処理の際、最後だけ","を...
-
System.err. printlnとSystem.o...
-
System.exit()の値を取得したい
-
動的配列が存在(要素が有る)か...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
[Ljava.lang.Stringってなんですか
-
Javaで文字と数字が混ざったも...
-
この警告はどうすれば?
-
配列の中に複数存在する数がい...
-
【C#】ハッシュテーブル(連想...
-
ページング
-
C#の質問
-
n番目に大きな値を探索する
-
javaでデータベース(mysql)か...
-
C#で動的配列Listの中身をListB...
-
C言語でunsigned char配列を連...
-
同じ配列またはクラスを、2回...
-
Javaで文字を漢字であるか否か...
-
ArrayListからBean配列に値をセ...
-
Java配列の問題を教えてくださ...
-
ランダムでのboolean値の与え方
-
配列で、値の入っている要素数...
-
strutsで2次元配列をやりとりす...
-
java StringとString[]の違い
-
javaでEUC-JP文字列→UTF-8への変換
おすすめ情報