为了账号安全,请及时绑定邮箱和手机立即绑定

Struts2:更新Map中“List Of Objects”的值

Struts2:更新Map中“List Of Objects”的值

繁华开满天机 2019-09-06 16:31:49
有一个对象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 =}
查看完整描述

3 回答

?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

根据您的最新更新。如果您使用的是TreeMapStruts2,则无法正确确定其中的元素类型。变更申报testTreeMap从TreeMap到Map。


private Map<String,ObjectCList> testTreeMap = new TreeMap<String,ObjectCList>();

或者使用注释testTreeMap进行com.opensymphony.xwork2.util.Element注释以告诉Struts2地图中的元素是什么类型。


@Element(value = ObjectCList.class)

private TreeMap<String,ObjectCList> testTreeMap = new TreeMap<String,ObjectCList>();



查看完整回答
反对 回复 2019-09-06
?
慕森卡

TA贡献1806条经验 获得超8个赞

我已经根据你的第一个响应添加了一个额外的层,我想,它应该没关系(?)以下是我在Map级别使用2个不同映射得到的2个不同错误:Scenario1:意外的异常捕获设置'rqPGPrmMdl.rqGrp[1].pFWrap.allPFields['DefaultHeader'].paramMdlList[7].pValue'在'class com.hm.action.Act1:错误设置表达'rqPGPrmMdl.rqGrp[1].pFWrap.allPFields['DefaultHeader'].paramMdlList[7].pValue' with value '[Ljava.lang.String;@3b9b2222' ognl.NoSuchPropertyException: java.lang.String.paramMdlList

查看完整回答
反对 回复 2019-09-06
  • 3 回答
  • 0 关注
  • 554 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信