关于数据库取数据并显示到html:select的很难描述的问题

来源:互联网 发布:php简历管理系统下载 编辑:程序博客网 时间:2024/05/22 13:47

[问题]  

原:

    public void parentmsg(ActionForm form, HttpServletRequest request){
        DataConn dc
=new DataConn();
        Connection conn;
        String sql
=null;

        ArrayList fenleis 
= new ArrayList();
                                          FenleiForm fenlei
= new FenleiForm();
        
        
try {
            conn 
= dc.getConnection();
            Statement stmt 
= conn.createStatement();
            sql
="select * from fenlei where parid=1";
            ResultSet rs
=stmt.executeQuery(sql);
            
int i=0;
            
while (rs.next()){
                                
                fenlei.setLbid(rs.getInt(
"lbid"));
                fenlei.setLbname(rs.getString(
"lbname"));
                
                System.out.println(rs.getInt(
"lbid"));  //测试用
                System.out.println(rs.getString("lbname"));
                
                fenleis.add(i, fenlei); 
//这里的fenlei实际是按地址传递的

                i
++;
            }

            request.setAttribute(
"lstfenlei", fenleis);
            
//fenlei.setFenleis(fenleis);
        }
catch(Exception e){
            System.out.println(e.getMessage());
        }

    }

lstfenlei的最终结果:
lbid=3   lbname="女童装"
lbid=3   lbname="女童装"
修改后

    public void parentmsg(ActionForm form, HttpServletRequest request){
        DataConn dc
=new DataConn();
        Connection conn;
        String sql
=null;

        ArrayList fenleis 
= new ArrayList();
        
        
try {
            conn 
= dc.getConnection();
            Statement stmt 
= conn.createStatement();
            sql
="select * from fenlei where parid=1";
            ResultSet rs
=stmt.executeQuery(sql);
            
int i=0;
            
while (rs.next()){
                FenleiForm fenlei
= new FenleiForm();  //要放在循环里面,用来重新在内存中开辟一块区域存储数据
                
                fenlei.setLbid(rs.getInt(
"lbid"));
                fenlei.setLbname(rs.getString(
"lbname"));
                
                System.out.println(rs.getInt(
"lbid"));  //测试用
                System.out.println(rs.getString("lbname"));
                
                fenleis.add(i, fenlei); 
//这里的fenlei实际是按地址传递的

                i
++;
            }

            request.setAttribute(
"lstfenlei", fenleis);
            
//fenlei.setFenleis(fenleis);
        }
catch(Exception e){
            System.out.println(e.getMessage());
        }

    }

lstfenlei最终结果:
lbid=2   lbname="男童装"
lbid=3   lbname="女童装"

jsp页面:

<html:select property="lbid">
    
<html:option value="0" >--请选择父类别--</html:option>
    
<html:optionsCollection name="lstfenlei" label="lbname" value="lbid"  />
</html:select>
原创粉丝点击