• execle导入后 数据 无刷新 显示在 输入页面


    问题描述:execle导入后 数据 无刷新 显示在 输入页面 
    分析过程:
    涉及:easyui   ajaxfileupload.js 使用struts2
    设计1:在dialog里面放一个iframe创建一个内联框架,在此进行提交,刷新填充数据后,通过选择回传到主页面。
    设计2:使用ajax实现需求
    解决途径:
    经验总结:
    因为使用struts2框架,直接用struts2的文件上传,如何将文件作为参数set到action里面?
    把表单的enctype属性设置为multipart/form-data这种编码方式的表单会以二进制流的方式来处理表单数据,这种编码方式会把文件域指定文件的内容也封装到请求参数里。需要Commons-FileUpload及Commons-IO包
    <s:form action="doUpload" method="post" enctype="multipart/form-data">
        <s:file name="upload" label="File"/>
        <s:submit/>
    </s:form>
    

      

    不使用表单方式提交,可以采用ajax的
    serialize() 方法序列号化表单。
    
    $("button").click(function(){
    
      $("div").text($("form").serialize());
    });
    

      

    序列化为类似a=1&b=2&c=3&d=4&e=5的字符串,只能对表单元素(比如 input 及/或 文本框),或者 form 元素本身而无法将文件进行序列化
    这里面使用ajaxfileupload.js,没有把文件转换成二进制。他首先是在页面中创建一个iframe,然后再创建一个form表单,并将fileElementId所指定的区域一并拼接到form表单中。当你触发ajax事件的时候,它会自动将这个表单提交。这就是ajax整个工作原理,也就是类似设计1中的想法,只不过将这个iframe放在一个显示不到的地方,然后进行表单提交,后台对数据进行处理(使用POI对execle进行解析、封装),
    //将List转化为JSON        
                JSONArray json=JSONArray.fromObject(imPayUnions);       
                //写入到前台        
                
                response.getWriter().write(json.toString());
    

      

    在$.ajaxFileUpload()的dataType:'json',中
     if( type == "json" )
    {
    eval( "data = " + data );
    }
    

      

    al(string)执行data这个String类型中的内容,转换为object对象
    插件将json格式转换为javascript对象类型,这样便可以再
    success: function (data){
    $("#"+x+"").html("<img style=' 88px;height: 88px;' alt='' src='"+data+"'>");
    }
    直接使用此data参数   如此边实现了ajax数据上传的无刷新
  • 相关阅读:
    POJ 1936 All in All
    Blue Jeans POJ 3080 寻找多个串的最长相同子串
    Spell checker POJ 1035 字符串
    密码锁
    luogu P1083 借教室
    BZOJ 1588: [HNOI2002]营业额统计
    BZOJ 1433: [ZJOI2009]假期的宿舍
    luogu P1231 教辅的组成
    luogu P2756 飞行员配对方案问题
    luogu P3386 【模板】二分图匹配
  • 原文地址:https://www.cnblogs.com/feifeiyu/p/3491482.html
Copyright © 2020-2023  润新知