[问题]
原:
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());
}
}
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());
}
}
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 >
< html:option value ="0" > --请选择父类别-- </ html:option >
< html:optionsCollection name ="lstfenlei" label ="lbname" value ="lbid" />
</ html:select >