包含3列的表,动态增加行的大小并在所选行的特定列中插入值。
我能够增加行大小并使用列表插入特定列,但先前输入的列值消失,新的列值显示在正确的位置。
注意:未使用数据库所有值都存储在List中。
List<Checkpointclass> addchk = List<Checkpointclass>)request.getServletContext().getAttribute("stageattr");
for(Checkpointclass add:addchk)
{
System.out.println(stage + "&" + add.getStage());
if(add.getStage().equals(stage)){
add.setCheckpoint(checkpoint);//3 columns
add.setStage(stage);//row
add.setRunway(runway);//id of those 3 columns
}
}
request.getRequestDispatcher( "GEFP.jsp" ).forward(request,response);
答案 0 :(得分:0)
您没有插入新元素。您正在修改现有的。
如果您希望在列表中添加新元素,首先应找到要添加元素的索引,然后创建一个新元素并添加它:
for(int i=0; i<addchk.length; i++)
{
Checkpointclass add = addchk.get(i);
System.out.println(stage + "&" + add.getStage());
if(add.getStage().equals(stage)){
break;
}
}
Checkpointclass newadd = new Checkpointclass ();
newadd.setCheckpoint(checkpoint);//3 columns
newadd.setStage(stage);//row
newadd.setRunway(runway);//id of those 3 columns
addchk.add(i,newadd);
答案 1 :(得分:0)
我不明白你阻止的地方:
Checkpointclass cp = new Checkpointclass();
cp.setCheckPoint("...");
cp.setStage("...");
cp.setRunway("...");
addchk.add(cp);
在迭代add
时不要执行addchck
,您只能获得ConcurrentModificationException
。为此,您需要新的列表副本或临时添加新项目。