2012-04-05 6 views
2

私のアクションクラスには、Map<Long, Set<String>>という名前のaccountsMapという属性があります。私が得たキー値は100,101,102です。 POSTパラメータは次のようになりように、私はJSPの私のチェックボックスをコード化されています:Struts 2 - マップとジェネリックスの型変換の問題

accountsMap[100]=string1 
accountsMap[100]=string2 
accountsMap[101]=string3 
accountsMap[101]=string4 
accountsMap[102]=string5 

だから、結果のマップは、キー100101102と3つの項目が含まれているはずです。キー100のMapエントリは、2つの文字列(string1とstring2)を値として持つSetを持つ必要があります。あなたはアイデアを得ることを願っています。

私のアクションでは、ページを送信する際にstrutsから入力されたマップが取得されます。しかし、Mapのジェネリックス情報は破棄されたようです。まず、MapのキーはInteger型で、元のMapが期待するLong型ではありません。次に、マップの値はString[]です。 Set<String>ではありません。 Strutsは私のセッターを使ってこれらの値を設定することができますが、MapでKey型をLongとし、値の型をSetとすると、クラスキャストの例外が発生します。

ストラットにマップの正しいタイプの値を設定するにはどうすればよいですか?助けてください。

+0

こんにちは新しいstruts2メンバー...スムーズに動作し続けるために解決策としてあなたのコメントを投稿し、後でそれを受け入れることが大好きであれば、またはいいえので質問を削除することができます誰かがそれに答えることを指す。 – Quaternion

+0

@Quaternion、私は質問を削除する方法を見つけることができなかったので、答えとして以前のコメントを投稿しました。私はコメントをした時点で、この(自分の質問に答える)さえ許されませんでした。 – Vasan

答えて

1

解決済み!

属性がページからの書き込み専用だったため、getterを提供しませんでした。ページが読み込まれたときに値を取得できませんでした。私はゲッターを(必死の対策として)追加し、問題を解決しました!ワダダンク? :-)