日期:2014-05-18  浏览次数:20605 次

在两个页面间传递整数数组的值的问题
我找的一个例子,
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漏了()