Java Struts 2-将值保存在映射内的映射中

Java Struts 2-将值保存在映射内的映射中,java,loops,dictionary,struts2,type-conversion,Java,Loops,Dictionary,Struts2,Type Conversion,我目前正在使用Struts 2,我遇到这样的情况: 在我的动作课上: 私有地图; 公共无效集合映射(映射映射){ this.map=map; } 公共映射getMap(){ 返回此.map; } 在我的JSP中,我使用迭代器使用'key'变量遍历映射,然后遍历另一个列表(整数),并使用这个整数遍历第二个映射,如下所示:map[${key}][${myInteger}] ${status.index} ${key} 这样做可以很好地获取值:value=“%{map[#attr.key][

我目前正在使用Struts 2,我遇到这样的情况:

在我的动作课上:

私有地图;
公共无效集合映射(映射映射){
this.map=map;
} 
公共映射getMap(){
返回此.map;
} 
在我的JSP中,我使用迭代器使用'key'变量遍历映射,然后遍历另一个列表(整数),并使用这个整数遍历第二个映射,如下所示:
map[${key}][${myInteger}]


${status.index}
${key}
这样做可以很好地获取值:
value=“%{map[#attr.key][#attr.myInteger].myEntityAttribute}”

但是当我想保存更改时,我无法使其工作:
name=“map[${key}][${myInteger}].myEntityAttribute“

我不知道我做错了什么,或者这件事做不到(我很确定一定有办法),但我有点厌倦了尝试


我会很感激任何建议,真的,任何有帮助的都欢迎

很快,Struts默认类型转换器就不可能了。它正在寻找bean属性来执行它们的转换

收藏转换也受支持,还有一个可以用来处理像你这样的收藏的


为此,您应该在
xwork conversion.properties
中为相应的集合类配置转换器。它是struts转换器使用的转换的全局属性。如果您不这样做,Struts转换器将使用
ognl.ConvertionNotSupported
异常对您的字段进行缓冲。您可以通过为您转换的类型放置自己的类型转换器来消除它

看看这个问题的答案:。为什么你确定,你尝试了什么?谢谢Aleksandr,有了这些答案,我意识到OGNL的一些局限性。我想做的是不可能的,所以我必须找到另一种方法。@johncol:确切地说,这不是OGNL限制,而是Struts2中的OGNL限制。我会试试的。谢谢你的信息。