gpt4 book ai didi

java - 更新 Map 中自定义对象的值,例如包含对象 B 列表的对象 A

转载 作者:太空宇宙 更新时间:2023-11-04 14:53:33 25 4
gpt4 key购买 nike

我点击了以下链接:我的问题也类似,但无法解决。 Struts2: Updating the values of a "List Of Objects" inside a Map

我有一张 Integer 的 map 和ObjA ,一个自定义对象,仅包含 List<ObjB> .

private Map<Integer, ObjA> displayMap = new HashMap<Integer, ObjA>();

ObjB包含大小、状态等参数。

JAVA 代码 我正在填充 displayMap包含所有对象值并将其显示在 jsp 上。但是当我再次提交表单时,displayMap变为空。

public String displayColumn() throws Exception {

for (int i = 0; i < numberOfDoors.length; i++) {
int k = 1;
List<ObjB> objBList = new ArrayList<ObjB>();
while (k <= numberOfDoors[i]) {
ObjB objB =new ObjB();
objB.setSizeCd("1");
objBList.add(objB);

doorNoCounter = doorNoCounter + 1;
k++;
}

ObjA objA = new ObjA();
objA.setObjBList(objBList);
displayMap.put(i+1, objA);
}
return SUCCESS;
}
}


private class ObjA{


private List<ObjB> objBList;

public List<ObjB> getObjBList() {
return objBList;
}

public void setObjBList(List<ObjB> objBList) {
this.objBList= objBList;
}

}

private class objB{
protected String sizeCd;

public String getSizeCd() {
return sizeCd;
}
public void setSizeCd(String sizeCd) {
this.sizeCd = sizeCd;
}

}

JSP 代码片段:

    <table class="tableStyle">

<tr>

<s:iterator status="outerStat" value="displayMap" var="parentMap">

<tr>
<s:iterator status="innerStat" value="%{#parentMap.value.objBList}" var="listLocker">
<td class="labelStaticText">Select Size Code:</td>

<td >
<s:textfield name="displayMap['%{#parentMap.key}'].objBList[%{#innerStat.index}].sizeCd" value="%{sizeCd}"/>
</td>
</s:iterator>
</tr>
</s:iterator>
</tr>

最佳答案

您的值显示正确这一事实没有任何意义,因为即使 value 属性正确,name 属性也将用于发送项目,并且它们'彼此无关。

顺便说一句,现在(编辑后)很清楚问题是什么:您正在使用两个私有(private)内部类。

请为 ObjAObjB 使用公共(public)类,它将起作用。

编辑:

The only issue is when I submit the form I do not get the value in the Map, hence not attaching the struts xml mapping..

由于您没有附加 struts 映射,因此我无法查看您的拦截器堆栈是否针对此操作进行了很好的配置。然后自己动手,确保您有默认拦截器堆栈,或者至少有 ParametersInterceptor 在那里。请记住,如果您添加自己的拦截器,则还需要添加堆栈,否则您将使用单个拦截器,而不是将其添加到其他拦截器。

关于java - 更新 Map 中自定义对象的值,例如包含对象 B 列表的对象 A,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23482799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com