Struts 2 - 使用Map和泛型键入转换问题

时间:2012-04-05 13:51:36

标签: generics map struts2

在我的动作类中,我有一个Map<Long, Set<String>>属性,名为accountsMap。让我们说我得到的关键值是100,101,102。我在JSP中编写了我的复选框,以便POST参数如下所示:

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

因此,生成的地图应包含3个带有键100,101,102的条目。带有键100的Map条目应该有一个Set with 2 Strings(string1和string2)作为其值。希望你明白这个主意。

我在struts提交页面的操作中得到了一个填充的Map。但是Map的泛型信息似乎已经被丢弃了。首先,Map的键是Integer类型,而不是原始Map所期望的Long。然后,Map的值为String[];而不是Set<String>。 Struts能够使用我的setter设置这些值,但是当我对Map执行任何操作时,假设键类型为Long,值类型为Set,我会得到类转换异常。

如何让struts在Map中设置正确的值类型?请帮忙。

1 个答案:

答案 0 :(得分:1)

解决!

我没有为属性提供getter,因为它是从页面只写的 - 当页面加载时我没有它的值。我添加了一个吸气剂(作为一种绝望的措施),它解决了这个问题! Whodathunk? : - )