精华内容
下载资源
问答
  • java中用form表单提交数据导出excel

    千次阅读 2019-02-01 17:17:58
    //表单提交  } }); 后台的代码: 获取需要的数据 public void exportRecord(){  String ids = getRequest().getParameter("ids");  String type = getRequest().getParameter("type");  //...

    js中的代码(红色代码为重点):

    $("#exportBtn").click(function () {
        var attr = [];
        if($("#allChoose").is(":checked")){
            $("input[name='simChoose']").each(function () {
                attr.push($(this).val());
            });
        }else{
            $("input[name='simChoose']:checked").each(function () {
                attr.push($(this).val());
            });
        }
        console.log(attr);
        if(attr.length<=0){
            alert("请选择需要导出的数据...");
            return;
        }else{
            //要提交到后台的数据
            var ids = attr.join(",");
            alert("数据导出完成");
            var form = $("<form>");
            form.attr('style','display:none');
            form.attr('mothod','post');
            form.attr('action',"${ctx!''}/goods/salesCapPrice/exportRecord.html");
            //将要提交到后天的数据放到一个隐藏的input框中
            var input1 = $('<input>');
            input1.attr('type','hidden');
            input1.attr('name','ids');
            input1.attr('value',ids);
            form.append(input1);
            //另外一个需要提交的数据
            var input2 = $('<input>')
            input2.attr('type','hidden');
            input2.attr('name','type');
            input2.attr('value',2);
            form.append(input2);

            $('body').append(form);
            form.submit();   //表单提交

        }

    });

    后台的代码:

    获取需要的数据

    public void exportRecord(){
        String ids = getRequest().getParameter("ids");
        String type = getRequest().getParameter("type");
        //不同导出excel的名字
        String fileName="";
        List<String>  titles= new ArrayList();
        if(StringUtils.equals("0",type)){
            fileName = "高限价维护提交审核记录";
            titles.add("提交审核时间");
            titles.add("提交审核原因");
            titles.add("审核小类数量");
            titles.add("审核状态");
            titles.add("提交人");
            titles.add("审核人");
            titles.add("审核时间");
            titles.add("开始执行时间");
        }else if(StringUtils.equals("1",type)){
            fileName = "高限价审核待处理";
            titles.add("商品小类数量");
            titles.add("提交审核原因");
            titles.add("申请人");
            titles.add("申请执行时间");
            titles.add("提交审核时间");
        }else {
            fileName = "高限价审核已完成";
            titles.add("商品小类数量");
            titles.add("提交审核原因");
            titles.add("申请人");
            titles.add("提交审核时间");
            titles.add("审核时间");
            titles.add("开始执行日期");
            titles.add("审核结果");
        }

        if(ids != null && type != null){
            List<String> idList = Arrays.asList(ids.split(","));
            List<SalesCapPriceRecord> list = goodsAuditUpOffService.exportRecord(idList);
            HttpServletRequest request = getRequest();
            HttpServletResponse response = getResponse();
            try {
                int index = exportRecordCount(request,response,fileName,list,titles,type);
                logger.info("商品高限价导出成功 导出行数:index:"+index);
            }catch (Exception e){
                logger.info("商品高限价导出失败");
                e.printStackTrace();
            }
        }
    }
     

     

    写入excel

    public int exportRecordCount(HttpServletRequest request, HttpServletResponse response, String fileName, List<SalesCapPriceRecord> list,List<String> titles,String type
                                                  ){
        int index = 0;
        OutputStream osr = null;
        SXSSFWorkbook wb = null;
        try {
            fileName = fileName + "-" + DateUtil.dateToString(new Date(), "yyyyMMdd");

            osr = response.getOutputStream();
            wb = new SXSSFWorkbook(rowaccess);
            org.apache.poi.ss.usermodel.Sheet sheet = wb.createSheet("导出记录");
            //普通单元格格式
            CellStyle strStyle = createStrCellStyle(wb);

            // 整数单元格格式
            CellStyle intStyle = createIntCellStyle(wb);

            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd ");
            UserInfoQuery userInfoQuery = new UserInfoQuery();
            UserInfoQuery userInfoQuery1 = new UserInfoQuery();
            //
            if(StringUtils.equals("0",type)){
                Row row0 = sheet.createRow(0);
                row0.setHeight((short)700);
                for(int i=0;i<titles.size();i++){
                    Cell tiltleCell0 = row0.createCell(i);
                    tiltleCell0.setCellValue(titles.get(i));
                    tiltleCell0.setCellStyle(strStyle);
                }
                for(int i=0;i<list.size();i++){
                    index = index+1;
                    Row row = sheet.createRow(i+1);
                    row.setHeight((short) 500);
                    Cell indexCell0 = row.createCell(0);
                    indexCell0.setCellValue(list.get(i).getSubmitAuditDate()==null?"" : sdf.format(list.get(i).getSubmitAuditDate()) );
                    indexCell0.setCellStyle(strStyle);

                    Cell indexCell1 = row.createCell(1);
                    indexCell1.setCellValue(list.get(i).getSubmitAuditReason() == null ?"" : list.get(i).getSubmitAuditReason());
                    indexCell1.setCellStyle(strStyle);

                    Cell indexCell2 = row.createCell(2);
                    indexCell2.setCellValue(list.get(i).getSmlClassNum() == null ? 0 : list.get(i).getSmlClassNum());
                    indexCell2.setCellStyle(intStyle);

                    Cell indexCell3 = row.createCell(3);
                    if(StringUtils.equals("0",list.get(i).getAuditState())){
                        indexCell3.setCellValue("待审核");
                        indexCell3.setCellStyle(strStyle);
                    }else if(StringUtils.equals("1",list.get(i).getAuditState())){
                        indexCell3.setCellValue("审核通过");
                        indexCell3.setCellStyle(strStyle);
                    }else{
                        indexCell3.setCellValue("审核驳回  理由:"+list.get(i).getAuditReason());
                    }

                    Cell indexCell4 = row.createCell(4);
                    userInfoQuery.setId(list.get(i).getSubmitUser());
                    List<UserInfo> userInfos = baseService.find(U_SERVICE,userInfoQuery);
                    indexCell4.setCellValue(userInfos.get(0).getRealName());
                    indexCell4.setCellStyle(strStyle);

                    Cell indexCell5 = row.createCell(5);
                    userInfoQuery1.setId(list.get(i).getAuditUser());
                    List<UserInfo> userInfo1 = baseService.find(U_SERVICE,userInfoQuery);
                    indexCell5.setCellValue(userInfo1.get(0).getRealName());
                    indexCell5.setCellStyle(strStyle);

                    Cell indexCell6 = row.createCell(6);
                    indexCell6.setCellValue(list.get(i).getAuditDateEnd() == null? "": sdf.format(list.get(i).getAuditDateEnd()));
                    indexCell6.setCellStyle(strStyle);

                    Cell indexCell7 = row.createCell(7);
                    indexCell7.setCellValue(list.get(i).getExecuteDate() == null ?"" : sdf.format(list.get(i).getExecuteDate()));
                    indexCell7.setCellStyle(strStyle);

                }
            }else if(StringUtils.equals("1",type)){
                Row row0 = sheet.createRow(0);
                row0.setHeight((short)700);
                for(int i=0;i<titles.size();i++){
                    Cell tiltleCell0 = row0.createCell(i);
                    tiltleCell0.setCellValue(titles.get(i));
                    tiltleCell0.setCellStyle(strStyle);
                }
                for(int i=0;i<list.size();i++){
                    index = index+1;
                    Row row = sheet.createRow(i+1);
                    row.setHeight((short) 500);
                    Cell indexCell0 = row.createCell(0);
                    indexCell0.setCellValue(list.get(i).getSmlClassNum()==null?0 : list.get(i).getSmlClassNum());
                    indexCell0.setCellStyle(strStyle);

                    Cell indexCell1 = row.createCell(1);
                    indexCell1.setCellValue(list.get(i).getSubmitAuditReason() == null ?"" : list.get(i).getSubmitAuditReason());
                    indexCell1.setCellStyle(strStyle);

                    Cell indexCell2 = row.createCell(2);
                    userInfoQuery.setId(list.get(i).getSubmitUser());
                    List<UserInfo> userInfos = baseService.find(U_SERVICE,userInfoQuery);
                    indexCell2.setCellValue(userInfos.get(0).getRealName());
                    indexCell2.setCellStyle(strStyle);

                    Cell indexCell3 = row.createCell(3);
                    indexCell3.setCellValue(list.get(i).getExecuteDate() == null ?"" : sdf.format(list.get(i).getExecuteDate()));
                    indexCell3.setCellStyle(strStyle);

                    Cell indexCell4 = row.createCell(4);
                    indexCell4.setCellValue(list.get(i).getSubmitAuditDate()==null?"" : sdf.format(list.get(i).getSubmitAuditDate()) );
                    indexCell4.setCellStyle(strStyle);
                }
            }else{
               

    Row row0 = sheet.createRow(0);
                row0.setHeight((short)700);
                for(int i=0;i<titles.size();i++){
                    Cell tiltleCell0 = row0.createCell(i);
                    tiltleCell0.setCellValue(titles.get(i));
                    tiltleCell0.setCellStyle(strStyle);
                }
                for(int i=0;i<list.size();i++){
                    index = index+1;
                    Row row = sheet.createRow(i+1);
                    row.setHeight((short) 500);
                    Cell indexCell0 = row.createCell(0);
                    indexCell0.setCellValue(list.get(i).getSmlClassNum() == null ? 0 : list.get(i).getSmlClassNum());
                    indexCell0.setCellStyle(intStyle);

                    Cell indexCell1 = row.createCell(1);
                    indexCell1.setCellValue(list.get(i).getSubmitAuditReason() == null ?"" : list.get(i).getSubmitAuditReason());
                    indexCell1.setCellStyle(strStyle);

                    Cell indexCell2 = row.createCell(2);
                    userInfoQuery.setId(list.get(i).getSubmitUser());
                    List<UserInfo> userInfos = baseService.find(U_SERVICE,userInfoQuery);
                    indexCell2.setCellValue(userInfos.get(0).getRealName());
                    indexCell2.setCellStyle(strStyle);

                    Cell indexCell3 = row.createCell(3);
                    indexCell3.setCellValue(list.get(i).getSubmitAuditDate()==null?"" : sdf.format(list.get(i).getSubmitAuditDate()) );
                    indexCell3.setCellStyle(strStyle);

                    Cell indexCell4 = row.createCell(4);
                    indexCell4.setCellValue(list.get(i).getAuditDateEnd() == null? "": sdf.format(list.get(i).getAuditDateEnd()));
                    indexCell4.setCellStyle(strStyle);

                    Cell indexCell5 = row.createCell(5);
                    indexCell5.setCellValue(list.get(i).getExecuteDate() == null ?"" : sdf.format(list.get(i).getExecuteDate()));
                    indexCell5.setCellStyle(strStyle);

                    Cell indexCell6 = row.createCell(6);
                    if(StringUtils.equals("0",list.get(i).getAuditState())){
                        indexCell6.setCellValue("待审核");
                        indexCell6.setCellStyle(strStyle);
                    }else if(StringUtils.equals("1",list.get(i).getAuditState())){
                        indexCell6.setCellValue("审核通过");
                        indexCell6.setCellStyle(strStyle);
                    }else{
                        indexCell6.setCellValue("审核驳回  理由:"+list.get(i).getAuditReason());
                        indexCell6.setCellStyle(strStyle);
                    }
                }
            }
            setRequestHeader(request, response, fileName);
            wb.write(osr);
            osr.flush();
            osr.close();

        }catch (FileNotFoundException e){
            e.printStackTrace();
            index = 0;
        } catch (IOException e) {
            index = 0;
            e.printStackTrace();
        } catch (Exception e) {
            index =0;
            e.printStackTrace();
        }
        return index;

    }
     

    //设置table的样式

    public static CellStyle createStrCellStyle(SXSSFWorkbook workbook) {
        CellStyle strStyle = workbook.createCellStyle();
        strStyle.setAlignment(CellStyle.ALIGN_CENTER);// 设置水平居中
        strStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);// 设置垂直居中
        return strStyle;

    }

    public static CellStyle createIntCellStyle(SXSSFWorkbook workbook) {
        // 整数单元格格式
        CellStyle intStyle = workbook.createCellStyle();
        intStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("0"));
        intStyle.setAlignment(CellStyle.ALIGN_CENTER);// 设置水平居中
        intStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);// 设置垂直居中
        return intStyle;
    }

    public static void setRequestHeader(HttpServletRequest request, HttpServletResponse response, String fileName) {

        try {
            String agent = (String) request.getHeader("USER-AGENT");
            response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8");
            response.setCharacterEncoding("UTF-8");
            fileName = fileName + DateUtil.dateToString(new Date(), "yyyy-MM-dd");
            if (agent != null && (agent.contains("Firefox") || agent.contains("Safari"))) {
                // FF
                fileName = "=?UTF-8?B?" + (new String(Base64.encodeBase64(fileName.getBytes("UTF-8")))) + "?=";
            } else {
                // IE
                String os = System.getProperty("os.name");
                fileName = URLEncoder.encode(fileName, "UTF-8");
                if (os.indexOf("Linux") != -1) {
                    fileName = new String(fileName.getBytes("UTF-8"), "ISO8859-1");
                } else if (os.indexOf("Windows") != -1) {
                    fileName = new String(fileName.getBytes("GB2312"), "ISO8859-1");
                }
            }
            response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx");
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

     


     

     


     

    展开全文
  • 如有错误欢迎指正 在网页搜索 layui 进入官网 。 ... 使用第一步,先到首页是点 立即下载 ... 下载的是一个压缩包,然后解压,解压之后会得到一个类似于这样... 打开jsp文件开始写页面,在头部引入css样式 去文...

    如有错误欢迎指正

            在网页搜索 layui  进入官网 。

            点击文档,里面有使用教程

             使用第一步,先到首页是点 立即下载

             下载的是一个压缩包,然后解压,解压之后会得到一个类似于这样的文件夹

            双击点进去,里面有三个东西,我们要用的东西在layui这个文件夹中

             我们把这个文件夹复制黏贴到项目中

             打开jsp文件开始写页面,在头部引入css样式

             去文档中找左侧的表单

             右边是样式预览和对应的代码

             找到需要的代码复制到jsp文件中,如下

             点击运行,失败了。

            这说明什么,说明layui的css样式没有成功引入啊,那到底是哪里出了问题呢,layui的引入只和两个东西有关系,一个是我们下载的layui文件,还有一个就是jsp页面中的ink的href。我们从官下载的layui文件,应该是没有问题的,而我并不了解href中的url格式到底是怎么样的,所以应该是href的问题。

            我原来写的href="./layui/css/layui.css",这个路径是我从网上复制下来的,那个./应该是指省略的路径,我应该按照自己的路径写,所以我改成href="/layui/css/layui.css",把那个点去掉,然后就奇迹出现了。

            如果我写href="layui/css/layui.css",把那个斜杠去掉,又会错,很奇怪

            如果我把layui放到webapp文件夹目录下,写href="layui/css/layui.css",也可以引用layui的css样式,但是在href中会多个下划线,将光标放上去会有提示,不知道什么意思。如果我把斜杠去掉,又会引入失败。

            到此为止,layui就算成功写入这个页面了

    展开全文
  • 关于表单的默认行为:https://blog.csdn.net/whd526/article/details/78178451 需阻止表单的默认行为。 ajax中的content-type:... java springMVC表单验证:https://www.jianshu.com/p/f85c248294f6,http...

    关于表单的默认行为:https://blog.csdn.net/whd526/article/details/78178451

    需阻止表单的默认行为。

    ajax中的content-type: https://www.jianshu.com/p/10cdbb35ac87

    java springMVC表单验证:https://www.jianshu.com/p/f85c248294f6https://blog.csdn.net/qq_27680317/article/details/79970590

    1、表单如下

         说明:当form标签内的button没有设置type=button时,点击按钮表单会有默认行为,即提交给本页面的地址,故添加onclikc="return false"来阻止表单的默认行为,同时提交按钮onclick绑定的事件的函数名不能为sumbit(),否则会触发表单的默认行为,暂且猜测,button按钮上不要出现单独的submit字眼为好。

    <form role="form" id="form" οnclick="return false">
        <label>姓名:</label><input type="text" name="username" id="username">
        <label>密码:</label><input type="text" name="password" >
        <label>选项</label>
        <select name="item">
           <option value="option1">option1</option>
            <option value="option2">option2</option>
            <option value="option3">option3</option>
        </select>
        <button type="button" οnclick="submit1()">提交</button>
    </form>
    

     2、获取表单内容的函数

           说明:如果遇上表单内容比较多的情况,可使用下面的这个函数来解决表单内容获取的工作,如果是ajax的请求方式为GET,则ajax的data为 $.param( getFormParams ( ) );如果是POST请求则为 JSON.Stringfy( getFormParams ( ) );

    function getFormParams(){
        var params = {};
        $("#form").find("input").each(function () {
            params[$(this).attr("name")] = $(this).val();
        });
        $("#form").find("select").each(function () {
            params[$(this).attr("name")] = $(this).val();
        });
        return params;
    }

    3、ajax提交表单

         

    function submit1() {
        $.ajax({
            url: '/validFrom',
            type: 'GET',
            dataType: 'json',//预期的服务器响应的数据类型。
            data: jQuery.param(getFormParams()),
            //contentType: '', //发送数据到服务器时所使用的内容类型。默认是:"application/x-www-form-urlencoded"。
            //context: '',//为所有 AJAX 相关的回调函数规定 "this" 值。
            //processData: 'true',//布尔值,规定通过请求发送的数据是否转换为查询字符串。默认是 true。
            //scriptCharset: '',//规定请求的字符集。
            //traditional:,//布尔值,规定是否使用参数序列化的传统样式。
            success: function (result, status, xhr) {
                alert(result.msg);
                console.log(result);
                console.log(status);//success
                console.log(xhr);
            },
            error: function (xhr, status, error) {
                alert(xhr.responseText);
                //console.log(status);//paraseeror
                //console.log(error);
            }
        });
    }

     

    4、后台Controller接收参数并验证

         说明:具体是在javaBean对象的属性上面添加相关注解,除了@NotEmpt还有@NotNULL等等,可以查阅

    import javax.validation.constraints包下的验证注解
    public class FormContent {
    
        @NotEmpty(message = "姓名不能为空!")
        private String username;
    
        @NotEmpty(message = "密码不能为空!")
        private String password;
    
        @NotEmpty(message = "item不能为空!")
        private String item;
    
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    
        public String getItem() {
            return item;
        }
    
        public void setItem(String item) {
            this.item = item;
        }
    
        @Override
        public String toString() {
            return "FormContent{" +
                    "username='" + username + '\'' +
                    ", password='" + password + '\'' +
                    ", item='" + item + '\'' +
                    '}';
        }
    }

     

    说明:Controller验证时,在接收参数的对象前面添加@Valid注解, 增加参数BindingResult bindingResult,具体使用方法如下

    /**
     * 方法返回的值是json字符串或javaBEAN都没有关系,只要有注解@ResponseBody即可
     * @param formContent
     * @param bindingResult
     * @return
     */
    @RequestMapping("/validFrom")
    @ResponseBody
    public String ValidForm(@Valid FormContent formContent, BindingResult bindingResult){
    
        System.out.println(formContent.toString());
        if(bindingResult.hasErrors()){
            System.out.println(bindingResult.getFieldError().getDefaultMessage());
            //return bindingResult.getFieldError().getDefaultMessage();
            RestResult restResult= new RestResult(0,bindingResult.getFieldError().getDefaultMessage());
            //return restResult;
            return JSON.toJSONString(restResult);
        }else{
            //return new RestResult(1,"请求成功!");
            RestResult restResult = new RestResult(1,"请求成功");
            return JSON.toJSONString(restResult);
        }
    
    }
    

     

    展开全文
  • 今天在做表单提交的时候遇到一个问题: 如何将表单与上传的文件流一起上传至后台服务器,整个过程中只允许存在一次请求。 于是在网上搜了许久,并没有直接讲到将表单数据与文件流一起上传至后台进行数据处理 然后就...

    问题描述

    今天在做表单提交的时候遇到一个问题:

    • 如何将表单与上传的文件流一起上传至后台服务器,整个过程中只允许存在一次请求。
    • 于是在网上搜了许久,并没有直接讲到将表单数据与文件流一起上传至后台进行数据处理
    • 然后就一直自己在调试,终于找到了解决办法。

    代码展示

    首先先展示前端代码(前端代码为伪代码)

    /**
     * 首先我们会有一个表单JSON对象
     * 我这里假设为 submissionData
     * 里面的参数我就不写,因为现在没有具体数据,并且这不是重点 
     */
     var submissionData={};
     
     /**
      * 然后,我这里会存在很多个附件……
      */
     var files = [……,……,……];
     
     /**
      * 创建一个FormData,
      * 我们先把附件数据逐个放入formData
      * 然后把表单对象放入formData
      * 表单对象放入之前请序列化成字符串 JSON.stringify
      * 但是formData请不要序列化
      */
     var formData = new FormData();
     for(i=0;i<files.length;i++){
    		formData.append("file_"+i,files[i]);
     }
     formData.append("submissionData",JSON.stringify(submissionData));
     
       /**
       * 开始请求后台,发送请求的时候请将
       * contentType:false
       * 或者
       * Content-Type:undefined
       * 具体情况看个人所使用前端的框架,发送的请求框架样式来决定的,
       * 如果这里写法存在困难需要查看对应框架的API
       * 请求过程因为框架不同,我这里伪代码也不展示了
       */
       /**
       * 最后说一下,我这里使用的POST请求
       */
    

    后端代码展示(这块不是伪代码,粘贴就能用)

    依赖jar包

    //依赖jar包
    import com.alibaba.fastjson.JSONObject;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.multipart.MultipartFile;
    import org.springframework.web.multipart.MultipartHttpServletRequest;
    import org.springframework.web.multipart.commons.CommonsMultipartResolver;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Vector;
    

    具体代码展示,这里我代码做了重构

    
    	/**
         * 接口-保存方法
         * @param response
         * @param request
         */
        @PostMapping("/saveFromData")
        public void saveFromData(HttpServletResponse response, HttpServletRequest request){
            //获取表单数据
            JSONObject jsonObject = getSubmissionData(request);
            //获取文件流
            List<MultipartFile> files = monitorFile(request);
            
        }
    
        /**
         * 获取表单中的数据
         * @param request
         * @return
         */
        private JSONObject getSubmissionData(HttpServletRequest request) {
            //获取表单数据
            String jsonText = request.getParameter("submissionData");
            //将表单数据序列化之后的数据转换为JSONObject类型(此步骤我们就获取完成了表单的)
            JSONObject jsonObject = JSONObject.parseObject(jsonText);
            return jsonObject;
        }
    
        /**
         * 开始检测request中的文件流信息
         * @param request
         * @return
         */
        private List<MultipartFile> monitorFile(HttpServletRequest request){
            //将当前上下文初始化给commonsMultipartResolver
            CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
            //判断request是否为MultipartHttpServletRequest类型
            if (request instanceof MultipartHttpServletRequest) {
                //解析文件流,查看是否存在文件信息
                return analysisFile(request, commonsMultipartResolver);
            }
            return null;
        }
    
        /**
         * 解析文件流,查看是否存在文件信息
         * @param request
         * @param commonsMultipartResolver
         * @return
         */
        private List<MultipartFile> analysisFile(HttpServletRequest request, CommonsMultipartResolver commonsMultipartResolver) {
            //将request强转为MultipartHttpServletRequest类型
            MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest) request;
            //创建一个迭代器,为接下来的迭代做准备
            Iterator<String> iterator = multipartHttpServletRequest.getFileNames();
            //检查form中是否有enctype="multipart/form-data",并且判断Iterator是否还存在值
            if (commonsMultipartResolver.isMultipart(request) && iterator.hasNext()) {
                //开始遍历文件
                return ergodicIteratorFile(multipartHttpServletRequest,iterator);
            }
            return null;
        }
    
        /**
         * 遍历文件集合,并做返回
         * @param multipartHttpServletRequest
         * @param iterator
         * @return
         */
        private List<MultipartFile> ergodicIteratorFile(MultipartHttpServletRequest multipartHttpServletRequest,Iterator<String> iterator){
            //创建文件存储的一个集合,并初始化
            // (这里使用Vector,而不使用ArrayLsit,是怕引起线程安全问题,因为后面会引用到相同的内存地址)
            List<MultipartFile> fileList= new Vector<>();
            //对iterator进行遍历
            while (iterator.hasNext()) {
                //将当前文件名一致的文件流放入同一个集合中
                List<MultipartFile> fileRows = multipartHttpServletRequest.getFiles(iterator.next());
                //对文件做去重设置
                monitorRepeat(fileList, fileRows);
            }
            return fileList;
        }
    
        /**
         * 对文件做去重设置
         * @param fileList
         * @param fileRows
         */
        private void monitorRepeat(List<MultipartFile> fileList, List<MultipartFile> fileRows) {
            //判断集合是否存在,并且是否大于0
            if (fileRows != null && fileRows.size() != 0) {
                //对文件集合进行遍历
                for (MultipartFile file : fileRows) {
                    //判断文件是否存在
                    if (file != null && !file.isEmpty()) {
                        //添加文件
                        fileList.add(file);
                    }
                }
            }
        }
    

    pom相关依赖

    		<dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.2.61</version>
            </dependency>
    

    后台代码原文地址

    https://blog.csdn.net/u012076316/article/details/49994555

    展开全文
  • Java实现表单登陆及验证

    千次阅读 2018-11-12 15:12:13
    Java实现最简单的表单提交及数据库验证登陆的代码
  • Form表单提交的四种数据格式

    万次阅读 2019-02-02 07:05:01
    表单提交只是POST请求的一种方式.` application/json application/json格式在AJAX或者Fetch的POST请求里面可以说是最常见的一种格式. 但是Form表单提交上W3C上HTML5对表单提交的格式已经做了说明 也就是说新版本...
  • 因此今天再来写一些最基本的代码,用最原始的方式实现表单提交。 首先这是我新建的java web工程,具体如何生成web.xml,新建工程,在上一篇里说了,这里就不说了。 再看web.xml 中的东西 我们手动新建了一...
  • 用layui实现表单提交(包含图片)

    千次阅读 2020-03-29 23:39:39
    说回正题,做个学习帖,记录一下layui实现表单提交中包含头像上传的问题: 首先导入jquery(也可以用layui自带的),再导入layui的css和js,注意你的逻辑js文件要在layui js的下面 html代码: <form id="myadd" ...
  • 一个表单提交多项多文件,进行分类获取并存储。 样式: 实现的效果:一个表单提交,但是要把各个项的文件分类保存。 假若我某项共需要上传13个文件,则会得到如下信息: 第一个: 第二个: ...
  • css 表单 样式A big part of our work as website designers is the ability to make things look good and function well. We spend hours taking the time to make every aspect of our site visually compelling,...
  • 【Flutter】表单提交

    千次阅读 2019-04-22 11:14:43
    每天进步一点。 最近有空的时候,学习...下面是一个简单的表单验证。 import 'package:flutter/material.dart'; class FormRoute extends StatefulWidget { final String _title; FormRoute(this._title); ...
  • return false 阻止表单提交不了 基本上关于onsubmit=return false有以下几点要注意的地方: 1. return 的返回值问题,函数中return一旦有返回值,就不在执行下面的语句,直接跳到函数调用的地方。如下PHP函数...
  • 初学java,大神路过看看就好,如果有问题请多多指教,谢谢 一、效果演示 1、查看ftp站点的物理路径中的文件 2、点击提交之后新增一条用户信息数据,将图片文件上传到ftp服务器上 二、java代码实现 ...
  • 生活还是得靠一点一点的琐碎拼接而成,认真对待生活中的每一件事。 IFrame篇以及表单提交方式
  • 1、form手动提交表单的前台界面   2、/WebContent/jsp/form_004.jsp   &lt;%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%&...
  • layui 表单提交不执行ajax的坑

    千次阅读 2018-08-24 10:30:00
    在官方文档2.x里面写的layui Form提交示例,form.on事件获取表单对应的json信息,然后自己ajax提交表单, 但是总是提交失败,一开始以为获取到json信息之后的那个return false已经无用了。没想到就这个return 坑了...
  • 1、html表单部分如下,样式使用的是AdminLTE前端框架,可以不理会。简要说明一下: (1)我在form表单头部加了id=“myform”,为了在js中进行阻断提交时获取form (2)在每一个<input>表单后面加了一个span...
  • Android Saripaar是适用于Android的简单,功能丰富且功能强大的基于规则的UI表单验证库。 这是可用于Android的SIMPLEST UI验证库。 为什么选择Android Saripaar? 建立在之上,该框架是一个验证框架,在Web,桌面...
  • 开发工具:idea2017 开发环境: JDK8.0;tomcat7.09; mySQL8.0; 利用maven 做struts ...页面样式效果: 完成后效果图: JSP页面: form表单中, action标识struts的方法的名称,在struts,xml中进行配...
  • 通过前端form表单将信息提交至数据库

    千次阅读 多人点赞 2020-05-05 16:13:57
    补充完整其他属性 (1)input标签的name属性 (2)input标签的placeholder属性(注意与value属性的区别) (3)表单提交到中间容器的方法 三.创建控制器 提示: ●控制器:是前端的form表单和后台的数据库中间的交接...
  • 最近有个需求,修改用户个人信息,效果如下;...HTML(这里用到了两个UI框架:layui和semantic ui,模板引擎使用的是:thymeleaf,以上只是对样式的影响,只有上传成功后的弹窗使用了layui) <link rel="sty...
  • 前端样式效果图: 前端样式主要代码: <div> <el-dialog title="用户注册" :visible.sync="dialogFormVisible"> <el-form :model="form"> <el-form-item...
  • webIx之表单提交

    2017-11-16 19:31:33
    本文主要介绍了如何创建一个表单,以及如何提交数据,这里当然指的是传统方式的提交数据 My JSP 'login.jsp' starting page webix.ui({ container : "loginArea", name:"ni", id:"form1", view : ...
  • 阻止表单提交的默认行为 return false

    万次阅读 2016-11-22 21:19:01
    今天在修改公司的登陆页面时发现关于阻止表单提交问题,如下代码片段 LOGIN 用户名: 密码: 验证码: /authcode" id="authcode" width="47" height="20" class="v_m"/> 登录 ...
  • 最近做java的时候用到了JavaScript表单。网上相关的教程很多,但大部分都不详细。 很多人学到最后都对form表单不是很熟悉,现在层出不穷的框架使得很多人觉得方便,也就更少地回顾基础知识了,但框架 W3school上面...
  • 大家都知道,一般的 JavaWeb 项目中,Servlet 从 JSP 获得的数据都是 String 类型,但是字符串是十分占内存的,同为了方便封装数据,有些时候需要将 String 类型转成...此文就是介绍如何在form表单提交前先执行JS判断。
  • 3,这是用form表单提交! 4, 后端代码实现: 控制器 @PostMapping(value = “/ExcelExport”) public void ExcelExport(HttpServletRequest request, String id, HttpServletResponse response) { String token =...
  • JavaWeb css样式表单

    2019-09-05 17:26:43
    Day02一、表单二、css样式三、作业 一、表单 form 表单 == > 作用:收集网页的数据==> 提交到服务器 (重点) form 表单的基本属性 action 表示提交的地址 method get post 提交的方式 get 方式:会显示...
  • 使用上下文路径解决用submit表单提交到LoginServlet后转发到iframe页面时,找不到其他页面以及样式文件 Java中的解决方法: 上下文路径:就是获得部署在tomcat中的项目名 如何获取上下文路径: <%=request....
  • 表单提交数据

    2014-05-10 21:32:50
    常用得表单提交数据 页面样式

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,761
精华内容 9,504
关键字:

java表单提交的样式

java 订阅