概述

实现AOP(面向切面)的编程思想,是可插拔的,可以对某个Action方法之前或之后实施拦截。
拦截器栈:将拦截器按一定的顺序联结成一条链,在访问被拦截的方法时,Struts2拦截器链中的拦截器就会按照之前定义的顺序被依次调用。

自定义拦截器

1、创建拦截器
创建一个类并继承AbstractInterceptor类,实现其中的
intercept(ActionInvocation invocation)方法:
Struts2——拦截器(文件的上传下载)
其中,invocation.invoke()为解除拦截
2、创建action
Struts2——拦截器(文件的上传下载)
3、配置struts.xml
在struts.xml中配置Interceptor,对action指定所需的拦截器。
Struts2——拦截器(文件的上传下载)
4、jsp界面
Struts2——拦截器(文件的上传下载)

拦截器栈:

1、先定义多个拦截器,如上所示
2、配置struts.xml文件
在Interceptors中可以定义多个Interceptor,依次放入interceptor-stack,并为action指定interceptor-stack的name属性,就可以依次调用其中的Interceptor
Struts2——拦截器(文件的上传下载)

文件的上传

1、jsp界面
将form表单的enctype设为“multipart/form-data”
Struts2——拦截器(文件的上传下载)
2、在Action中添加相应属性(属性要设置set,get方法),并编写上传方法
Struts2——拦截器(文件的上传下载)
3、配置struts.xml
Struts2——拦截器(文件的上传下载)

注意:
fileUpload.allowTypes指定上传文件的类型,fileUpload.allowedExtensionsSet指定上传文件的后缀。
也可设置fileUpload.maximumSize,上传文件大小,以字节为单位,默认为2M
出现错误会转向一个input视图,可以通过
<s:actionError/> <s:feildError/>显示错误消息的提示
多文件上传:
在action中对将接收参数改为数组形式,通过for循环进行上传
Struts2——拦截器(文件的上传下载)

文件下载

概述
在action中建立InputStream类型的方法,用以接收需要下载文件的字节流,并指明存放路径。再通过struts中的`来进行传值。
1、action中代码
Struts2——拦截器(文件的上传下载)
注意:
默认路径在E:\Tomcat\apache-tomcat-7.0.90\webapps\项目名称中
2、struts中代码
Struts2——拦截器(文件的上传下载)
注意:

<param name="inputName"></param>中的内容,必须是action中InputStream类型方法的名称(首字母小写)。

相关文章:

  • 2023-03-21
  • 2021-12-25
  • 2022-12-23
  • 2022-01-07
  • 2021-11-23
  • 2022-12-23
  • 2021-09-11
猜你喜欢
  • 2022-12-23
  • 2022-01-02
  • 2022-12-23
  • 2021-06-24
  • 2021-12-25
  • 2021-07-24
  • 2022-12-23
相关资源
相似解决方案