Struts1 中,如果页面中的form表单有多条user记录,每条记录都有id,username,等等,我要去收集不定条数的user记录,如何设计ActionForm呢。

解决方案 »

  1.   

    有点难度,你的user应该有个数量限制吧
      

  2.   

    最多20个。 是不是不应该用actionform
      

  3.   

    首先用条件查询出来的集合封装到action里面,然后在页面中用iterate循环集合就可!不知道,你的action有没有对应的formBean
      

  4.   

    用<logic:iterator />做。
      

  5.   

    在actionfrom中申明
    private Map<String,User> users = new HashMap<String,User>();然后写二十个setter
    例子
    public void setUser1(User user){
       users.put("user1",user);
    }
    ....
    public void setUser20(User user){
       users.put("user20",user);
    }然后写一个getter返回一个User数组,他的个数是变化的,与页面的对应的
    public User[] getUsers(){
      return this.users.values().toArray();
    }
    在页面中:
    第一个user
    <input name="user1.id" ...
    <input name="user1.name" ...
    第二个user
    <input name="user2.id" ...
    <input name="user2.name" ...
    页面的动态添加input的技巧你自己考虑了
      

  6.   

    在页面写个循环应该可以吧i<=20
      

  7.   

    要是用struts2就好了,可以直接在action接list了!
      

  8.   

    我只是想知道怎么用actionForm去收集这些数据,而不是用<logic:iterate> 去显示这些数据
      

  9.   

    JSP文件中这样来实现:
    <input type='text' name="users[0].id" size='10'/>
    <input type='text' name="users[0].name" size='10'/>
    -----------------------------------------------------------------------
    FORM中定义:
    private List<User> users= new ArrayList<User>();public getUsers()...
    public setUsers(....
    ----------------------------------------------------------------------
    另外你需要一个User类
    public class User {
      String id = "";
      String name="";
    getId
    setId
    getName
    setName
    }
      

  10.   

    1.userForm  定义一个User类的对象 ,UserBiz的对象
    2.userAction  定义一个UserBiz 
    3.UserBiz 里查询集合的方法
    4.在userAction里面实例 UserBiz,UserForm
    5.List list=UserBiz的对象   .(点出来)   集合方法
      

  11.   

    ActionForm 的类里面加一个属性集合ArrayList<User> userlist = new ArrayList<User>就解决问题了- -