江山壮美

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

    在页面检验数据时,调用document.getElementsByName(String name)函数,这个方法可返回带有指定名称的对象的集合。

    在后台取数据时,调用request.getParameterValues(String name)函数,这个函数是获得数组变量如checkbox类(名字相同,但值有多个)的数据。这也是为什么在上一篇中,每列的name相同的原因。只有name相同,才能把每列的信息作为一个数组来接收,而id的不同,是为了在页面的其他操作(检验金额等)中,以id区分同一列不同行的信息。

    这里补充一点nameid的区别:

    在html中:name指的是用户名称,ID指的是用户注册是系统自动分配给用户的一个序列号。

    name是用来提交数据的,提供给表单用,可以重复;

    id则针对文档操作时候用,不能重复。

    所以页面操作用不同的id提交数据用name按组传递。

Jsp页面:

Javascript部分:

function save() {

  var equipnameList = document.getElementsByName("peoEquipname");//取出产品名称一列的数据

  var delidateList = document.getElementsByName("peoDelidate");//取出交货日期一列的数据

  var numList = document.getElementsByName("peoNum");//取出数量一列的数据

  var tag = 0;//置标志位为0,标志位为0,可以提交数据,标志位为1,不能提交数据

  var i=0;

  for(i=0;i<equipnameList.length;i++){//循环检查每一行的产品名称,交货日期,数量不能不空(品牌,规格型号,询价成本可以为空)

    if(equipnameList[i].value==""){

      i++;//因为数组从第0个开始,我们看表格从第1行开始,所以循环标志在此自增,行号显示正常

      tag=1;//置标志位为1,不能提交数据

      confirm(""+i+"行的产品名称不能为空");//给出提示,循环标志与行号统一

      break;

    }

    if(delidateList[i].value==""){

      i++;

      tag=1;

      confirm(""+i+"行的交货日期不能为空");

      break;

    }

    if(numList[i].value==""){

      i++;

      tag=1;

      confirm(""+i+"行的产品数量称不能为空");

      break;

    }

  }

  if(tag==1){

    return false;//结束函数,不在提交数据

  }

  document.form.action = "${pageContext.request.contextPath}/store.do?method=add";

  document.form.method = "post";

  document.form.submit();

}

部分静态代码

<button type="button" onclick="javaSript:save();" >保存</button>

Action类部分代码

if(method.equals("add")){//增加多条设备下单条目

  Utils utils = new Utils();//Utils类可将字符串转化为Date类对象

  String[] equipnameList = request.getParameterValues("peoEquipname");//获取一组设备下单条目的产品名称

  String[] brandList = request.getParameterValues("peoBrand");//获取一组设备下单条目的品牌

  String[] modelList = request.getParameterValues("peoModel");//获取一组设备下单条目的产品型号

  String[] delidateList = request.getParameterValues("peoDelidate");//获取一组设备下单条目的交货日期

  String[] numList = request.getParameterValues("peoNum");//获取一组设备下单条目的数量

  String[] inqucostList = request.getParameterValues("peoInqucost");//获取一组设备下单条目的询价成本

  for(int num=0;num<inqucostList.length;num++){

    if(inqucostList[num].isEmpty()){

      inqucostList[num]="0";//如果金额项有空项,置为0,防止转化为Double类对象时报错

    }

  }

  List<TProEquiporderNew> equiporderNewList = new ArrayList<TProEquiporderNew>();//TProEquiporderNew类为设备下单条目类

  TProEquiporderNew equiporderNew;

  for(int i=0;i<equipnameList.length;i++){//循环取出每行数据,放入多个设备下单条目类

    equiporderNew = new TProEquiporderNew();

    equiporderNew.setPeoEquipname(equipnameList[i]);

    equiporderNew.setPeoBrand(brandList[i]);

    equiporderNew.setPeoModel(modelList[i]);

    equiporderNew.setPeoDelidate(utils.StrConvertDate(delidateList[i]));

    equiporderNew.setPeoNum(Long.parseLong(numList[i]));

    equiporderNew.setPeoInqucost(Double.parseDouble(inqucostList[i]));

    String peoComname = brandList[i]+equipnameList[i]+modelList[i];//peoComname为组合项(品牌+产品名称+产品型号)

    equiporderNew.setPeoComname(peoComname);

    equiporderNewList.add(equiporderNew);//将多个设备下单条目类插入一个List中

  }

  proEquiporderNewManager.addMoreProEquiporderNew(equiporderNewList);

  return mapping.findForward("list");

}

Manager类部分代码

public void addMoreProEquiporderNew(List<TProEquiporderNew> list) {//增加多条设备下单条目

for(int i=0;i<list.size();i++){

    TProEquiporderNew tproEquiporderNew = (TProEquiporderNew)list.get(i);

    proEquiporderNewDao.addOrModiProEquiporderNew(tproEquiporderNew);

  }

}

dao类部分代码

public void addOrModiProEquiporderNew(TProEquiporderNew tproEquiporderNew) {//增加或修改一条设备下单条目

  this.getHibernateTemplate().saveOrUpdate(tproEquiporderNew);

}

注:Utils类

public class Utils {

public Date StrConvertDate(String str) throws ParseException {

  Date d = null;

  SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

  String strTemp = StringUtils.defaultIfEmpty(str, "");

   if (!strTemp.equals("")) {

    d = format.parse(str);

   }

   return d;

 }

}

posted on 2014-01-15 15:02  江山壮美  阅读(464)  评论(0)    收藏  举报