struts-default.xml中 声明了所有拦截器,而defaultStack有18个拦截器是默认使用的
简单说。struts2框架在默认情况下,默认加载了18个拦截器
struts2中怎样使用拦截器
问题:使用拦截器可以做什么 底层是AOP 动态代理
控制行为的访问
可以通过使用拦截器进行控制action的访问。例如:权限操作
怎样使用拦截器
1.创建一个interceptor
可以自定义一个类实现Interceptor
在这个接口中有三个方法 init destory intercept,intercept方法是真正拦截的方法
在intercept方法中如果要向下继续执行,通过其参数调用他的invoke()方法即可
2.声明一个Interception
在struts-default.xml文件中有
注意:我们要自己声明一个interception可以在struts.xml文件中声明
3.在action中指定使用哪些拦截器
注意:只要显示声明使用了一个拦截器,那么默认的拦截器就不再加载了
在struts2中怎么实现文件上传
默认情况下struts2框架使用的就是commit-fileupload组件
struts2它使用了一个interceptor帮助我们完成文件上传
页面上的组件:
在action 中要有三个属性
private File upload;
private String uploadContentType;
private String uploadFileName;
在execute方法中使用common-io包下的FileUtils完成文件复制
FileUtils.copyFile(upload,new File(“地址”));
文件上传问题处理:
1.关于控制文件上传大小
在default-properties文件中定义了文件上传的大小
默认是2m
2.在struts2中默认使用的是commons-fileupload进行文件上传
3.如果出现问题,需要配置input视图,在页面上可以通过展示错误信息
问题:在页面上展示的信息,全是英文,要想展示中文,国际化
弄一个properties文件 针对adction文件 放在包中
通过源代码 去配置
4.关于多文件上传大小控制以及
多文件上传
服务器端
只需要将action属性声明成list集合或数组就可以。
下载
1.超链接
2.服务器编码,通过流向客户端写回
在StreamResult类中有三个属性
在action类中定义一个方法