- PR -

HashMapを使用して配列を設定

1
投稿者投稿内容
桜月
常連さん
会議室デビュー日: 2004/10/01
投稿数: 27
お住まい・勤務地: 神奈川県
投稿日時: 2005-05-17 12:10
お世話になっています。
桜月です。

@.JSP画面上5つのチェックボックスにそれぞれ番号を振り、チェックしたチェックボックスの番号を
Arrayという配列に格納します。

A.Arrayに格納したデータをHashMapで次の画面へ渡します。

上記のことを行おうと思うのですが、HashMapにArrayのデータを設定することができません。
↓の方法で行おうとするとエラーが出てしまいます。

<%
// Create Hash
HashMap NextHash = new HashMap();
NextHash.clear();
NextHash.put("Array", Array);
pageContext.setAttribute("NextHash", NextHash);
%>

色々と試してはみたのですが、解決できませんでした。
どなたかご指導よろしくお願いします。
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2005-05-17 12:27
引用:

↓の方法で行おうとするとエラーが出てしまいます。


どんなエラー?

Arrayが構築されてなくてNullPointerExceptionが発生?
castし間違えて、ClassCastExceptionが発生?
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2005-05-17 12:29
引用:

上記のことを行おうと思うのですが、HashMapにArrayのデータを設定することができません。
↓の方法で行おうとするとエラーが出てしまいます。



エラーって一体どういう状態になるのでしょうか?

引用:

色々と試してはみたのですが、解決できませんでした。



何を試して、どうなったかを書かれたほうがいいと思いますよ。
回答の参考になると思いますので。


で、提示されたサンプルですが[Array]は宣言されているんでしょうか?
HashMapもインポートされていますか?
桜月
常連さん
会議室デビュー日: 2004/10/01
投稿数: 27
お住まい・勤務地: 神奈川県
投稿日時: 2005-05-17 13:21
かずくん様、かつのり様ご返答ありがとうございます。

説明不足でしたね。申し訳ありません。
エラーは下記のエラーが表示されています。
----------------------------------------------------------------------------
2005-05-17 13:12:31 StandardWrapperValve[action]: サーブレット action のServlet.service()が例外を投げました
org.apache.jasper.JasperException: JSPのクラスをコンパイルできません

生成されたサーブレットのエラーです:
[javac] Compiling 1 source file

シンボルを解決できません。
シンボル: 変数 Array
場所 : org.apache.jsp.pages.m_005fArray_jsp の クラス
NextHash.put("Array", Array);
^
エラー 1 個


----------------------------------------------------------------------------

Arrayの型が違うのかと思いNextHash.put("Array", ""+Integer.parseInt(Array));で
囲ってもみましたがダメでした。
NextHash.put("Array", "Array");と書いてみてもただ「Array」の文字がServletに渡されるだけでした。
ぽん
大ベテラン
会議室デビュー日: 2003/05/13
投稿数: 157
投稿日時: 2005-05-17 13:37
引用:

桜月さんの書き込み (2005-05-17 13:21) より:

シンボルを解決できません。
シンボル: 変数 Array
場所 : org.apache.jsp.pages.m_005fArray_jsp の クラス
NextHash.put("Array", Array);


変数「Array」が宣言されていませんよ。
シュン
ぬし
会議室デビュー日: 2004/01/06
投稿数: 328
お住まい・勤務地: 東京都
投稿日時: 2005-05-17 13:46
もしかして、Arrayという名前のローカル変数があるのではなくて、
pageContextなどにキー名"Array"で格納されているだけだったり
しません?

NextHash.put("Array", pageContext.getAttribute("Array"));
とか。
桜月
常連さん
会議室デビュー日: 2004/10/01
投稿数: 27
お住まい・勤務地: 神奈川県
投稿日時: 2005-05-17 14:16
ぽん様、シュン様ご返答ありがとうございます。

どうやら簡単なミスをしていたみたいです。

引用:

シュンさんの書き込み (2005-05-17 13:46) より:
もしかして、Arrayという名前のローカル変数があるのではなくて、
pageContextなどにキー名"Array"で格納されているだけだったり
しません?

NextHash.put("Array", pageContext.getAttribute("Array"));
とか。



上記の通り、
NextHash.put("Array", pageContext.getAttribute("Array"));
と修正したらエラーは解消されました。

あとは選択したチェックリストの番号をServlet側に渡すことができれば、
作業は完了です。
1

スキルアップ/キャリアアップ(JOB@IT)