2

在我的操作类中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 中设置正确的值类型?请帮忙。

4

1 回答 1

1

解决了!

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

于 2012-04-07T19:47:44.153 回答