パート 1: 別のオブジェクト (ObjectB) を持つオブジェクト (ObjectA) があります。オブジェクト B 内に Hashmap があります。このハッシュマップには、キーとして文字列があり、値として別のオブジェクト「ObjectC」があります。このハッシュマップは、s:iterator と s:textfield を使用して jsp に表示され、正しく表示されています。つまり、s:textfield 内の「値」は正しいのですが、「名前」は正しくありません。ここで、テキストフィールドが変更されたときに問題が発生します。アクション クラスの ObjectC 内で変更された値を取得するにはどうすればよいでしょうか。
public class ObjectA implements Serializable {
private Integer attr1;
private List<ObjectB> objB;
//...getters and setters....
public class ObjectB implements Serializable {
private Integer attr11;
private Map<String,ObjectC> myMap;
// ...getters and setters....
public class ObjectC implements Serializable {
private Integer attr111;
public String attr112;
// ...getters and setters....
jsp コード:
<s:iterator value="#objB.myMap" var="fieldMap" status="fieldStatus">
<li><label><s:property value="#fieldMap.key"/></label><span>
<s:textfield name="<NOT SURE>" value="%{#fieldMap.value.attr12}" /></span></li>
</s:iterator>