我目前正在使用 Struts 2,我遇到了这种情况:
在我的行动课上:
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"
我不知道我做错了什么,或者如果不能这样做(我很确定一定有办法),但我有点厌倦了尝试。
我将不胜感激任何建议,真的,任何可以提供帮助的东西都会受到欢迎。