Order只要在JSF配置文件里把它设成session传值就可以了 那Order的list就会一直存在 所以你所做的修改也会保存 如果我当你修改后用action触发一个方法 这个方法也在Order中 那在这个方法中就可以直接调用那个list进行操作 
举个简单的例子 比如说在页面里已经用dataList显示出了很多记录 而每条记录前都有一个checkbox 假如我在选择过了多个记录之后 点提交按钮 我如何知道我都选中了哪些记录并把这些被选中的记录的id号装入一个数组里(通常用来做多项删除)
假如页面有如下代码(只写出主要部分)
<t:dataList value="#{Order.list}"
   <h:selectBooleanCheckbox id="aCheck" value="#{list.chioce}" />
   <h:outputText value="#{list.product_name}" />
</t:dataList>
<h:commandButton value="" type="submit" action="#{Order.select}" />而你与之相对应的Bean如下(这里各属性的set和get方法省去 只给出要操作的方法)
public class Order{
   private ArrayList list = null;
   private boolean chioce;
   private String product_name;
   private String product_id;
   
   public String select() {
      int i = 0;
      String[] products_id = new String[list.size()];
      Iterator it = list.iterator();
      while (it.hasNext()) {
Order PB = (Order) it.next();
   if (PB.isChioce()) {  //boolean型的get方法为is
     PB.setChioce(false);
     products_id[i] = PB.getProduct_id(); 
     i++;
   }
      }
}
当你提交后通过页面的action触发Order里的select方法 通过迭代器取出对象并对属性chioce的状态作出判断 如果是被选中的状态就将该对象的id号装入数组
不要忘了Order在JSF配置文件里把它设成session传值
希望上面的代码能给你帮助^_^

解决方案 »

  1.   

    对了 应该说明一下 上个帖子中页面的那个list当中已经存储了chioce,product_name,product_id三个属性 
    chioce默认设为false 
    product_name和product_id分别为从数据库中取出的记录的名称和id号 所以当用对象PB判断某条记录被选中后 if (PB.isChioce())  就将这条记录的id号存入数组 products_id[i] = PB.getProduct_id();
    这样最后数组String[] products_id存储的就是所有被选中的记录id号
      

  2.   

    按楼主的说法chioce,product_name,product_id这三个属性应该在Item这个类里 因为只是个例子所以我将这三个属性写到了Order里 总之你能明白我的意思就可以了
      

  3.   

    只要引用了list,那么这个list是一直存在的,谢谢各位