3

私は現在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 では、イテレータを使用して「キー」変数を使用してマップを調べ、次に (整数の) 別のリストを反復処理し、この整数を使用して 2 番目のマップを調べます。次のようにします。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"

何が間違っているのかわからない、またはこれができない場合(方法があるに違いないと確信しています)、試してみるのにちょっとうんざりしています。

何か提案をいただければ幸いです。実際、役立つものは何でも歓迎します。

4

1 に答える 1