用FormFile批量上传图片时,在JSP页面中我用了一个按钮来增加文件域的填写注解的文本域。在Action中我用multipartRequestHandler.getFileElements()获取文件域的值,返回值的类型是Hashtable;由于表单中的文本域太多,所以我将填写注解的文本域 的名称统一命名为pic,在Action中通过(String[])multipartRequestHandler.getTextElements().get("pic"),返回一个数组,然后把图片名称和图片注解分别用逗号隔开连接成字符串插入到DB中的,显示的时候,再遍历。但是图片与注解不对应,经检查发现,插入到DB中的时候,图片名称是无序的。最后才明白,Hashtable中存放的数据是无序的,我想应该是这个造成的。但是奇怪的是,上传六张图片时,图片与注解刚好是相反的,于是插入DB时,就将注解倒序插入到DB中,但是多于六张就乱七八糟的,有点找不着规律。我平时没怎么用过Hashtable,请问各位高手,如何才能解决这一问题,用FormFile批量上传图片时,让图片与注解对应

解决方案 »

  1.   


    最简单的方式,就是你添加文件框和注解框时,给它对应不同的名字。比如增加一个,则
    file name="file1",pic name="pic1"
    再加一个,则
    file name="file2",pic name="pic2"在后面你就去取hashtable的file,比如hashtable取到key=file1后,
    getParameter("pic"+key.substring(4)),就取到了对应的pic1了。
      

  2.   

    Hashtable存储的数据是无序的啊!!
      

  3.   

    Hashtable中值的存储是无序的,而数组是有序存储,因此用这种方法不可能对应