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

来源:互联网 发布:比特币挖矿 编程 编辑:程序博客网 时间:2024/06/05 14:15

问题描述:execle导入后 数据 无刷新 显示在 输入页面 

分析过程:

涉及:easyui   ajaxfileupload.js 使用struts2

设计1:在dialog里面放一个iframe创建一个内联框架,在此进行提交,刷新填充数据后,通过选择回传到主页面。

设计2:使用ajax实现需求

解决途径:

经验总结:

因为使用struts2框架,直接用struts2的文件上传,如何将文件作为参数set到action里面?

把表单的enctype属性设置为multipart/form-data这种编码方式的表单会以二进制流的方式来处理表单数据,这种编码方式会把文件域指定文件的内容也封装到请求参数里。需要Commons-FileUploadCommons-IO

 

前台

 

1

2

3

4

<s:form action="doUpload" method="post" enctype="multipart/form-data">

    <s:file name="upload" label="File"/>

    <s:submit/>

</s:form>

 

 

 

 

不使用表单方式提交,可以采用ajax

1

2

3

4

5

6

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进行解析、封装),

1

2

3

4

5

//将List转化为JSON       

            JSONArray json=JSONArray.fromObject(imPayUnions);      

            //写入到前台       

             

            response.getWriter().write(json.toString());

 

$.ajaxFileUpload()dataType:'json',

1

2

3

4

if( type == "json" )

{

eval( "data = " + data );

}

al(string)执行data这个String类型中的内容,转换为object对象

插件将json格式转换为javascript对象类型,这样便可以再

success: function (data){
$("#"+x+"").html("<img style='width: 88px;height: 88px;' alt='' src='"+data+"'>");
}

直接使用此data参数  如此边实现了ajax数据上传的无刷新

阅读全文
0 0
原创粉丝点击