2012-04-05 50 views
2

在我的動作類中,我有一個名爲accountsMap的Map<Long, Set<String>>屬性。可以說我得到的關鍵值是100,101,102。我已經編寫我的複選框,在JSP以便POST參數是這樣的:Struts 2 - 地圖和泛型的類型轉換問題

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

所以生成的地圖應該包含3項與鍵100101102。具有鍵100的映射條目應具有以2個字符串(string1和string2)作爲其值的Set。希望你明白這個主意。

我在struts上提交頁面時會在我的動作中得到一個填充的Map。但Map的泛型信息似乎已被丟棄。首先,Map的鍵類型是Integer,而不是原來的Map所期望的。然後,地圖的值爲String[];而不是Set<String>。 Struts能夠使用我的setter設置這些值,但是當我使用Map假定鍵類型爲Long並且值類型爲Set時,我執行了類轉換異常。

如何獲得struts在Map中設置正確類型的值?請幫忙。

+0

Hello new struts2 member ...爲了讓事情順利進行如果您可以發表您的評論作爲解決方案,然後接受它會很棒,或者您可以刪除該問題,因爲沒有指向其他人回答。 – Quaternion 2012-04-05 20:24:31

+0

@Quaternion,我無法弄清楚如何刪除這個問題,所以我發表了我早先的評論作爲答案。順便說一句,即使這樣(回答我自己的問題)在我發表評論時是不允許的。 – Vasan 2012-04-07 19:49:47

回答

1

解決!

我沒有提供屬性的getter,因爲它是從頁面寫入的 - 頁面加載時我沒有它的值。我添加了一個getter(作爲絕望的措施),它解決了問題! Whodathunk? :-)