在我的操作类中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 条目应该有一个带有 2 个字符串(string1 和 string2)的 Set 作为其值。希望你能明白。
在提交页面时,我确实在我的操作中从 struts 中获得了一个填充的地图。但是 Map 的泛型信息似乎已被丢弃。首先,Map 的键是 Integer 类型,而不是原始 Map 所期望的 Long。然后,地图的值是类型String[]
;而不是Set<String>
。Struts 能够使用我的 setter 设置这些值,但是当我对 Map 进行任何操作时,假设键类型为 Long,值类型为 Set,我得到类转换异常。
如何让 struts 在 Map 中设置正确的值类型?请帮忙。