有一个对象ObjectA有一个列表ObjectB。TreeMap里面有一个ObjectB。它TreeMap有一个String关键字和List另一个对象ObjectC作为值。这个TreeMap和list内部已经显示在jsp使用s:iterator和s:textfield,它正在正确显示。即s:textfield中的“值”是正确的。现在,修改文本字段时出现问题。我们如何捕获动作类中ObjectC内的修改值?使用此处给出的代码,键(“Key1”)出现在操作中,但值为null。
Java代码
public class ObjectA implements Serializable {
private Integer attr1;
private List<ObjectB> objB;
//...getters and setters....
public class ObjectB implements Serializable {
private Integer attr11;
private TreeMap<String,List<ObjectC>> allPlainFields;
// ...getters and setters....
public class ObjectC implements Serializable {
private Integer attr111;
public String attr112;
// ...getters and setters....
JSP代码
<s:iterator value="objA.objB" var="currentObjB" status="currentGroupStatus">
<s:iterator value="#currentObjB.allPlainFields" var="parentMap" status="headerStatus">
<s:iterator value="#parentMap.value" var="fieldList" status="fieldStatus">
<s:textfield name="objA.objB[%{#currentGroupStatus.index}].allPlainFields['%{#parentMap.key}'][%{#fieldStatus.index}].attr112"/>
</s:iterator>
</s:iterator>
HTML呈现: <input type="text" id="review-act1_objA_objB_0__allPlainFields_'Key1'__6__attr112" value="Correct Value" name="objA.objB[0].allPlainFields['Key1'][0].attr112">
eclipse的“VAriables”视图中的对象结构显示:
objA Object A (id=955)
objB ArrayList<E> (id=966)
elementData Object[10] (id=967)
[0] ObjectB (id=968)
allPlainFields TreeMap<K,V> (id=972)
comparator null
descendingMap null
entrySet TreeMap$EntrySet (id=979)
keySet null
modCount 1
navigableKeySet null
root TreeMap$Entry<K,V> (id=980)
size 1
values null
****在Eclipse“Variables”视图中,allPlainFields的值为**:** {Key1 =}
翻翻过去那场雪
慕森卡
相关分类