开源俱乐部

开源框架
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

在Strut中,实现table中复制一行的功能
line[j]是要复制的一行,Action中可以获取到要复制的行的ID.
因为line[j]中有很多属性,要是一个一个的属性去get,然后set的话,代码量会
很大,而且会出现很多冗余代码。
这是我要复制出来的一行
if (j == rowId && !line[j].getNewRecord()) {
     rowList.add(line[j]);
     //将这一行全部复制
    }
现在要使得其中的某几个属性复制出来为空
则需要一个一个的set,get.
if (j == rowId && !line[j].getNewRecord()) {
    CreateDeliveryLineRow  cdlr = new CreateDeliveryLineRow  ();
    if(line[j].getMfgLot() != null){
         cdlr.setMfgLot = null;
   }
。。。。。。
     rowList.add(cdlr);
     //将这一行全部复制
    }

以下是比较好的解决方案:
利用apache的common类中的BeanUtils来实现对象属性的复制
if (j == rowId && !line[j].getNewRecord()) {
     
       
       CreateDeliveryLineRow row = new CreateDeliveryLineRow();
       BeanUtils.copyProperties(row,line[j]);   //复制出对象line[j],将其属性赋予row
       row.setQuantity(null);                                     //在row中轻松的实现对某几个属性的控制
       row.setMfgLot(null);
       row.setMiniQuantity(null);
       row.setBoxQuantity(null);
      rowList.add(row);
      //rowList.add(cdr);
    }
===================================================
CreateDeliveryForm getForm = (CreateDeliveryForm) form;
。。。。。。
CreateDeliveryLineRow[] line = getForm.getLine();
if (line != null && line instanceof CreateDeliveryLineRow[]) {
   int size = line.length;

   for (int j = 0; j < size; j++) {
    if (!line[j].getNewRecord() && !line[j+1].getNewRecord()) {
     if (line[j].getBoxQuantity() == 0L) {
      line[j].setBoxQuantity(null);
     }
     if (line[j].getMiniQuantity() == 0L) {
      line[j].setMiniQuantity(null);
     }
     if (line[j].getQuantity() == 0D) {
      line[j].setQuantity(null);
     }
     rowList.add(line[j]);
    }
    if (j == rowId && !line[j].getNewRecord()) {
     
       
       CreateDeliveryLineRow row = new CreateDeliveryLineRow();
       BeanUtils.copyProperties(row,line[j]);
       row.setQuantity(null);
       row.setMfgLot(null);
       row.setMiniQuantity(null);
       row.setBoxQuantity(null);
       rowList.add(row);
      //rowList.add(cdr);
    }

   }
  }

。。。。。。
request.setAttribute("results", rowList);

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问