在两个页面间传递整数数组的值的问题
我找的一个例子,
String Name[] = {"kucao","oldmouse","smallBird"};
session.setAttribute("sessionName",Name);
然后在另一个页面,接收
String[] data = (String[])session.getAttribute("sessionName");
for(int j=0;j<data.length;j++)
out.println(data[j]);
这个例子没有问题,但是我的具体情况是需要传递整数数组,所以模仿如下:
Integer[] xxbh= new Integer[5];
Statement smt1=con.createStatement();
ResultSet rs1;
String sql1;
sql1 = "select * from xzt where tmbh='"+tmbh+"'";
rs1 = smt1.executeQuery(sql1);
for(int i=0;i<5;i++){
while(rs1.next()){
xxbh[i]=rs1.getInt("xxbh");
}
}
session.setAttribute("xxbh",xxbh);
接收
Integer[] xxbh=(Integer[])session.getAttribute("xxbh");
for(int i=0;i<5;i++){
out.println(xxbh[i]);}
运行结果,只传递了上个页面最后一个值,其他为空,如:34 null null null null
------解决方案--------------------算法很有问题,很基础的错误。永远只能取得最后一个值。
for(int i=0;i <5;i++){
while(rs1.next()){
xxbh[i]=rs1.getInt("xxbh");
}
}
改成
int i = 0;
while(rs1.next){
xxbh[i]=rs1.getInt("xxbh");
i++;
if( i == 5) break;
}
------解决方案--------------------楼上的正解,只是rs1.next漏了()