在我的动作类中,我有一个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中设置正确的值类型?请帮忙。
答案 0 :(得分:1)
解决!
我没有为属性提供getter,因为它是从页面只写的 - 当页面加载时我没有它的值。我添加了一个吸气剂(作为一种绝望的措施),它解决了这个问题! Whodathunk? : - )