Struts2PPT6.ppt_第1页
Struts2PPT6.ppt_第2页
Struts2PPT6.ppt_第3页
Struts2PPT6.ppt_第4页
Struts2PPT6.ppt_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,1,第六章,Struts2高级,2,目标,6.1 异常处理 6.2 文件上传与下载(单文件与多文件上传) 6.3 Action与JSON,2,3,异常处理,Struts2提供了一套非常完善的异常处理机制,action执行过程中如果抛出异常,struts框架通过截拦器捕获,并根据配置跳转到错误显示页面通知用户. Action的方法向上抛出Exception,意味着Action中抛出的所有异常都可以被处理. 不需要在代码中处理异常,配置即可,3,4,异常处理操作步骤,操作步骤 在Action中抛出异常 在struts.xml文件中配置异常类对应的异常显示页面 在显示页面中显示异常信息,5,在A

2、ction中抛出异常(模拟),6,配置异常类对应的异常显示页面,如果Action抛出NullPointerException, UnsupportedOperationException, SQLException异常,则跳转到e1.jsp页面显示异常,7,异常配置有两种类型 局部异常:只对当前Action有效,上页中的就是局部异常 全局异常:对所有Action有效.,8,显示异常信息,9,文件上传,struts2并没有定义自己的文件解析器,而是采用了其他的开源组件 支持三种文件上传组件 # struts.multipart.parser=cos # struts.multipart.pars

3、er=pell struts.multipart.parser=jakarta 其中jakarta是默认支持的方式 如果要使用其他两种,必须将对应的库文件导入工程,并修改perties文件 不管使用哪一种方式上传,代码没有区别 通过FileUploadInterceptor截拦器完成,10,文件上传要点(1),form标签设置enctype=multipart/form-data“ 文件上传后的文件以File表示(如File upload) 上传的文件信息保存方式 文件名:xxxFileName,如:uploadFileName 文件类型:xxxContentType,如u

4、ploadContentType 相关属性 struts.multipart.saveDir=g:/ struts.multipart.maxSize=2048,11,文件上传要点(2),文件不会自动保存到服务器,必须在Action中通过流操作保存,典型的代码段如下: FileOutputStream fos = new FileOutputStream(this.savePath + this.file1FileName); FileInputStream fis = new FileInputStream(this.file1); byte bs = new byte1024; int r

5、eal = fis.read(bs); while(real 0) fos.write(bs, 0, real); real = fis.read(bs); fos.close(); fis.close();,12,上传示例-Action,public class FileuploadAction extends ActionSupport private String desc; private File file1; private String file1FileName; private String savePath = G: + System.getProperty(file.se

6、parator); public String execute()throws Exception FileOutputStream fos = new FileOutputStream(this.savePath + this.file1FileName); FileInputStream fis = new FileInputStream(this.file1); byte bs = new byte1024; int real = fis.read(bs); while(real 0) fos.write(bs, 0, real); real = fis.read(bs); fos.cl

7、ose();fis.close(); return null; ,13,上传示例jsp页面, ,14,文件过滤,上传文件时可能要限制文件扩展名或文件大小,这叫文件过滤. 文件过滤通过FileUploadInterceptor截拦器来实现. 如果文件过滤失败,系统自动转入input视图. 典型配置 /fileupload.jsp 5485760 .exe,.html ,15,注意,文件大小先后经过两重验证 perties(默认2M左右) struts.multipart.maxSize=91344570 5485760,16,文件上传出错信息,在classpath下创建tes

8、tmessages_zh_CN.properties文件,输入下面内容 struts.messages.error.file.too.large=u6587u4EF6u592Au5927 struts.messages.error.file.extension.not.allowed=u6587u4EF6u7C7Bu578Bu4E0Du5339u914D,17,多文件上传,采用数组即可,18,文件下载,文件下载其实就是将服务器上的文件以流的形式传送给客户端浏览器,并通知浏览器如何处理文件流. 通过response对象通知浏览器的处理方式为下载 response.setHeader(Conten

9、t-disposition, attachment; filename= + utf8File);,19,下载代码,20,Action与JSON,struts2-json-plugin-.jar插件能让客户向Action发送ajax请求,Action返回json格式的字符,在浏览器端再转换成json对象进行处理. 注意 1.将struts2-json-plugin-.jar导入工程 2.package的extends的值必须为json-default(可以放在一个单独的package中) 3.Action处理请求的方法的返回值必须为” success” 4.返回到客

10、户端的值由Action的属性组成,可以包含基本类型,数组,集合和Map. 5.Action必须配置一个name为json的result,无需指定路径,如:,21,示例-Action,public class Json2Action private String a; private String b; private String c; public String execute() throws Exception c = a + b + 得到结果啦,哈哈哈.; return success; ,22,配置, ,23,JSON,JSON(format=yyyy-MM-dd, name=birth) 用在属性的g

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论