Struts2的一些高级应用,在这段时间,深入地学习了Struts2的一些常用方法,但是这仅仅是一些表面的,多做项目多积累,多发现问题才是王道!各位前辈们,望多请教!
1、定义拦截器时可以直接继承AbstractInterceptor抽象类(该类实现了Interceptor接口,并且对init和destroy方法进行了空实现),然后实现其抽象方法intercept即可。
2、方法拦截器(可以对指定方法进行拦截器的拦截器)。
3、在方法过滤拦截器中,如果既没有指定includeMethods参数,也没有指定executeMethods参数,那么所有的方法都会被拦截,也就是说所有的方法都会被认为是includeMethodsd的;如果仅仅指定了includeMethods,那就只会拦截includeMethods的方法,没有包含在includeMethods的方法就不会被拦截。
4、Package元素的abstract属性表示该包是抽象的。不能直接使用,需要有子包继承才可以使用。Struts-default这个package就是abstract的,因此需要我们继承这个包来使用。
5、package元素的namespace属性起到命名空间分割的作用。通常将namespace的属性值定义成页面所在的目录名。
6、进行文件上传时,必须将表单的method属性设为post,将enctype属性设为mulipart/form-data。
7、struts2在进行文件上传操作时,实际上通过两个步骤实现的:
1)首先将客户端上传的文件保存到struts.multipart.saveDir键所指定的目录中,如果该键所对应的目录不存在,那么就保存到javax.servlet.context.tempdir环境变量所制定的目录中。
2)Action中所定义的File类型的成员变量file实际上指向的是临时目录中的临时文件,然后在服务器端通过IO的方式将临时文件写入到指定的服务器端目录中。