gpt4 book ai didi

java - Struts 2 - 在 map 内的 map 中保存值

转载 作者:行者123 更新时间:2023-12-02 09:06:16 25 4
gpt4 key购买 nike

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

在我的 Action 类中:

private Map<String, Map<Integer, MyEntity>> map; 

public void setMap(Map<String, Map<Integer, MyEntity>> map) {
this.map = map;
}

public Map<String, Map<Integer, MyEntity>> getMap() {
return this.map;
}

在我的 JSP 中,我使用迭代器使用“key”变量遍历映射,然后迭代另一个(整数)列表并使用该整数遍历第二个映射,如下所示:map [${key}][${myInteger}]

<s:iterator value="map" status="status"> 
<tr>
<td>${status.index}</td>
<td>${key}</td>
<s:iterator value="integersList" id="myInteger">
<td>
<s:textfield name="map[${key}][${myInteger}].myEntityAttribute" value="%{map[#attr.key][#attr.myInteger].myEntityAttribute}" id="attr_${key}_${myInteger}" theme="simple" size="10" />
</td>
</s:iterator>
</tr>
</s:iterator>

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

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

我不知道我做错了什么,或者这是否不能完成(我很确定一定有办法),但我有点厌倦了尝试。

我很感激任何建议,真的,任何能提供帮助的东西都是受欢迎的。

最佳答案

简而言之,Struts 默认类型转换器又名 XWorkConverter 是不可能的。 。它正在寻找 bean 属性来执行转换。

还支持集合转换,还有CollectionConverter您可以用它来玩像您这样的集合。

为此,您应该在xwork-conversion.properties中为相应的集合类配置转换器。它是 struts 转换器使用的转换的全局属性。如果您不这样做,Struts 转换器将导致您的字段出现 ognl.ConvertionNotSupported 异常。您可以通过为您转换的类型放置您自己的类型转换器来忽略它。

关于java - Struts 2 - 在 map 内的 map 中保存值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16743610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com