谁知道为什么<logic:iterator>标签为什么只循环输出表中的最后一条记录jsp中为:
<logic:iterate id="manager" name="list" >
<bean:write  name="manager" property="id"/>
<bean:write  name="manager" property="account"/>
<bean:write  name="manager" property="password"/>
<bean:write  name="manager" property="level"/>
</logic:iterate> action中为:
ManagerForm managerForm = (ManagerForm) form;// TODO Auto-generated method stub
String sqlstr="select * from manager where account='"+managerForm.getAccount()+"' and password='"+managerForm.getPassword()+"'";
System.out.println(sqlstr);
int id=-1;
DBConn conn=new DBConn();

ResultSet rs = conn.executeQuery(sqlstr);
try {
rs.next();
id=rs.getInt("id"); 
} catch (Exception e) {
// TODO: handle exception
}
if(id!=-1){
HttpSession session=request.getSession();
session.setAttribute("userid", id);
System.out.println("ture");
return mapping.findForward("succ");

}
else{
System.out.print("false");
 return mapping.findForward("err");
}
数据库中的记录为1001 zhen 123  1
1001 wang 123  2
1001 li   123  2
1004 song 123  2输出结果为:1004 song 123   2
1004 song 123   2
1004 song 123   2
1004 song 123   2

解决方案 »

  1.   

    list没在action中set进来啊 
    list相关代码在哪里
      

  2.   

    sorry  ,刚才发错了action中为: 
    String sql="select * from manager";
    ManagerlistForm mlist=(ManagerlistForm)form;
    List list=new ArrayList<ManagerlistForm>();
    DBConn conn=new DBConn(); 
    ResultSet rs=conn.executeQuery(sql);
    try {
    while(rs.next()){
    mlist.setId(rs.getString("id"));
    // System.out.println(rs.getString("id"));
    mlist.setAccount(rs.getString("account"));
    mlist.setPassword(rs.getString("password"));
    mlist.setLevel(rs.getString("managerLevel"));
    list.add(mlist);
    }
    } catch (Exception e) {
    // TODO: handle exception
    e.printStackTrace();
    }
    request.setAttribute("list", list);
    return mapping.findForward("showmanager")
      

  3.   

    while(rs.next()){
    mlist.setId(rs.getString("id"));
    // System.out.println(rs.getString("id"));
    mlist.setAccount(rs.getString("account"));
    mlist.setPassword(rs.getString("password"));
    mlist.setLevel(rs.getString("managerLevel"));
    list.add(mlist);

    因为这段始终不停的给同一个mlist赋值,所以只是最后一条
      

  4.   

    String sql="select * from manager";
    ManagerlistForm mlist=(ManagerlistForm)form;
    List list=new ArrayList<ManagerlistForm>();
    DBConn conn=new DBConn(); 
    ResultSet rs=conn.executeQuery(sql);
    try {
    while(rs.next()){
    mlist.setId(rs.getString("id"));
    // System.out.println(rs.getString("id"));
    mlist.setAccount(rs.getString("account"));
    mlist.setPassword(rs.getString("password"));
    mlist.setLevel(rs.getString("managerLevel"));
    list.add(mlist);
    }
    } catch (Exception e) {
    // TODO: handle exception
    e.printStackTrace();
    }
    request.setAttribute("list", list);
    return mapping.findForward("showmanager");
    }
      

  5.   

    不应该啊,list中存数据不都是用add()方法么??
      

  6.   

    String sql="select * from manager"; 
    ManagerlistForm mlist=(ManagerlistForm)form; 
    List list=new ArrayList <ManagerlistForm>(); 
    DBConn conn=new DBConn(); 
    ResultSet rs=conn.executeQuery(sql); 
    try { 
    while(rs.next()){
    XXX mlist=new XXX();    //因为我不知道类,所以用XXX代替了。
    mlist.setId(rs.getString("id")); 
    // System.out.println(rs.getString("id")); 
    mlist.setAccount(rs.getString("account")); 
    mlist.setPassword(rs.getString("password")); 
    mlist.setLevel(rs.getString("managerLevel")); 
    list.add(mlist); 

    } catch (Exception e) { 
    // TODO: handle exception 
    e.printStackTrace(); 

    request.setAttribute("list", list); 
    return mapping.findForward("showmanager"); 
    }
      

  7.   

    改成这成就OK了while(rs.next()){ 
    mlist.setId(rs.getString("id")); 
    // System.out.println(rs.getString("id")); 
    mlist.setAccount(rs.getString("account")); 
    mlist.setPassword(rs.getString("password")); 
    mlist.setLevel(rs.getString("managerLevel")); 

    list.add(mlist); list放到外面
      

  8.   

    String sql="select * from manager"; 
    ManagerlistForm mlist=(ManagerlistForm)form; 
    List list=new ArrayList <ManagerlistForm>(); 
    DBConn conn=new DBConn(); 
    ResultSet rs=conn.executeQuery(sql); 
    try { 
    while(rs.next()){ 
    XXX mlist=new XXX();   //因为我不知道类,所以用XXX代替了。 
    mlist.setId(rs.getString("id")); 
    // System.out.println(rs.getString("id")); 
    mlist.setAccount(rs.getString("account")); 
    mlist.setPassword(rs.getString("password")); 
    mlist.setLevel(rs.getString("managerLevel")); 
    list.add(mlist); 

    } catch (Exception e) { 
    // TODO: handle exception 
    e.printStackTrace(); 

    request.setAttribute("list", list); 
    return mapping.findForward("showmanager"); 
    }刚才看错了!这个才是对的