框架学习之struts2-05文件上传、下载、ajax整合json

struts2文件上传、下载、ajax整合json

文件上传
1. 导相应的包,百度搜索
2. 表单的处理,在属性中加入属性enctype=”multipart/form-data”
3. 在目标处理器类中声明一个文件,并且名字要和表单中的文件名字一致还可以声明文件名和文件类型,必须是上传 文件名+FileName和文件名+ContentType
4. 完全用框架,那么可以按照下面的操作来:

<action name="bookSave" class="sample.s2.web.action.BookAction" method="save">
            <param name="fileSavePath">/photo/</param>
            <interceptor-ref name="defaultStack">
                <param name="fileUpload.maximumSize">204800</param>
                <param name="fileUpload.allowedTypes">image/gif, image/png,    image/jpeg</param>
            </interceptor-ref>
            <result name="input">/WEB-INF/jsp/manage/book-mgr.jsp</result>
        </action>

上述的配置中控制了文件上传的大小和格式,并且传递了文件上传的保存路径
5. 文件经过校验后,在java程序中就可以使用工具类FileUtils调用copyFile(pic, new File(filePathName))方法保存上传文件
6. 文件上传失败的提示信息可以单独卸载一个properties文件中,具体的字段键名:
struts.messages.error.file.too.large=……
struts.messages.error.content.type.not.allowed=……
在页面上的输出:<s:fielderror fieldName="pic" />
文件下载
1.下载文件需要配置xml

<action name="downloadFGT" class="sample.s2.web.action.DownloadFGTAction">
            <result type="stream">
                <param name="inputName">fgtInputStream</param>
                <param name="contentType">image/jpeg</param>
                <param name="contentDisposition">attachment; filename=${fileShowName}</param>
            </result>
            <result name="error">/WEB-INF/jsp/manage/book-mgr.jsp</result>
        </action>

上述中的配置需要配置文件的MIME类型,文件的名字(attachment; filename=${fileShowName}),文件的传输方式是以流的方式
2. 文件的名字由服务器提供,在传输的时候可以设置编码:String fileName= URLEncoder.encode(fileShowName, “UTF-8”);
3. 在服务器端获得文件的下载路径,根据文件的路径获得一个字节流

InputStream streamName = ServletActionContext.getServletContext().getResourceAsStream("文件路径");

由此获得的流响应给客户端,完成下载
ajax请求整合json数据
1. 导struts2整合的相应的包
2. 在配置文件中把extends=”struts-default”改为”json-default”
3. 在action中设置result的type为”json”,参数配置为”root”,参数值直接给一个数据结果集的名字,比如数组、列表等

<result type="json">  
    <param name="root">dataResult</param>  
</result>

返回的json结果直接被前段解析
4. 基于jquery的json解析,直接遍历输出即可(如果不用struts2的框架返回json,我们也可以自己手动封装json数据)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值