批量导入添加。(struts2)

    本文纯粹为了帮自己记录做批量导入添加功能的过程,日后查询方便。最好是能够帮到跟我一样的新手。大牛手下留情哈。

    从上周四到今天周日,除了昨天玩了一天传奇,欺负了个比我大的号,对方又喊个人来整我,妹的。好了,废话少说。一直在做的是一个批量导入添加功能。光是增删改查,就一直做到周五中午,而且界面的数字输入框还都没有做限制,不管了,还有一个批量导入功能在等着我,这些七七八八等有时间再改,先做基本功能出来给项目经理看。

    增加功能遇到个问题就是输入框的隐藏,也就是根据前面的下拉框,决定显示哪几个输入框。问了下同事,决定采用struts2标签select的onchange事件。在JS中写个方法,源代码如下:function setJffs(){
                            var jffs=document.getElementById("oprJffs").value;
                            if(jffs==1){
                                 document.getElementById("jf21").style.display="none";

                                 document.getElementById("jf1").style.display="";
                            }
                           if(jffs==2){//jffs为计费方式
                                 document.getElementById("jf21").style.display="";
                                document.getElementById("jf1").style.display="none";
                           }
                        }

    当下拉框的值改变时,页面会根据不同的值显示不同的内容。但是这样导致后来遇到个问题,如果是修改的时候怎么办?当计费方式为1时,在主界面显示的是计费方式为1的数据,点击修改,进到修改页面,没问题。当计费方式为2时,点击修改,进入的页面还是同1的相同,即没有告诉修改页面现在是计费方式1还是计费方式2。其实,jffs这个值已经传过去了,只是该怎么判断呢?还好旁边有大神相助。用ONLOAD事件吧,进入修改页面就判断。好家伙,一下子搞定了。除了修改,添加和删除就没什么了。我就是修改的时候取数据老不熟练。郁闷!

    不过总算把增删改功能给做好,包括分页。周五下午开始着手批量导入添加功能。一如既往,找人家写过的代码COPY。界面COPY,最关键的就是ACTION了。看看别人代码,静下来想想,没错,现在是批量添加功能,只需要一个界面就可以搞定,而ACTION要有两个方法,一个用于把导入的数据显示在界面上,一个用于点击开始添加的时候执行的动作的方法。

//读取excel文件并解析
  String tmpDate=new Date().getTime()+"";
  saveFileName = tmpDate+getExtention(fileName);
  String file = getFilePath(saveFileName);
  File imageFile = new File(file);
  this.copy(myFile,imageFile);
  System.out.println("file:"+file+"configfile:"+configfile);
  List list=ExcelUtil.excelToList(file, configfile);

在该方法下,判断数据是否正确,比如格式啊,主键是否已存在数据库,各种正则……还好正则我这比较简单,只用到

String pattern="^\\d{1,7}(?:\\.\\d{1,2})?$";//带1~2位小数 

  String pattern1="纯数字

然而,在此,数据一直出来不。这边读取的是EXCEL里的数据,到上面的LIST里,数据一直是空的。找来找去,花了一个周五下午,查到了,是配置文件的问题。properties不能保存中文,我的配置文件里有中文,点保存就提示保存失败,但可以关掉,我一直以为关掉就可以保存了。后来,大费周折,问同事,百度,各种找,找到一个解决办法,就是不要新建properties文件,在外面建好,数据写好,直接扔到项目中……好吧,数据可以显示了。然后,就周六了。先回家吃饭了,明天再写今天做添加动作的经过,累死。

2013-3-18

终于下班……

    昨天说的批量导入添加,还有一个关键点就是对各种属性的约束。业务员要把数据一个个添加到EXCEL表格中,难免会出错,那我们就要对其输入进行限制。主键判断,是否存在,是否为空。今天写了一个IF语句,竟然如此长。

if(ks.getPrimaryKey(khbh.trim(),jdsf.trim(),yjfl.trim()).size()>0||khbh==null||"".equals(khbh)||jdsf==null||"".equals(jdsf)||yjfl==null||"".equals(yjfl)||((!"1".equals(yjfl))&&     (!"2".equals(yjfl)))||khbh.trim().length()>14||jdsf.trim().length()>8||yjfl.trim().length()>1||(!ks.isExistKh(khbh.trim()))||(!ks.isExistSf(jdsf.trim()))){}

没办法,在界面要对显示的信息进行包装,显示为红色或其它的,只能在一个语句中对它进行判断。如果分开判断,单个属性就带上了其它字符,下一个判断便会出错。

    显示的时候比较麻烦要考虑这些,执行添加动作的时候就不需要了,只要条件不满足,直接continue。在这里,又学到一招,如何把continue跳到指定的循环。在指定的循环前加上 个tag: ,等到continue的时候直接continue tag;就结了。

    不说了,真不知道自己在写什么。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值