第7章
Struts2深入学习(Struts2深入学习(二)
本章学习内容:
1.Struts2类型转换器2.Struts2的拦截器3.Struts2文件上传
本章学习目标:
1掌握Struts2类型转换器的开发2.理解Struts2拦截器的工作原理3.掌握在Struts2中开发自定义拦截器4.能够在Struts2中实现多文件上传
第1页共27页
f本章简介:
通过上一章的学习,我们学习了Struts2配置文件、在Struts2的Actio
中访问ServletAPI、Struts2的动态方法调用、Struts2自定义处理结果、Struts2属性驱动和模型驱动、Struts2国际化等知识。本章将继续深入学习类型转换器、拦截器、文件上传的相关内容。Struts2的类型转换器提供了非常强大的表现层数据处理机制,开发者可以利用Struts2的类型转换机制来完成任意的类型转换。当需要将一个字符转换成一个复杂对象时,自定义类型转换器就可发挥强大的作用了拦截器是动态拦截Actio
调用的对象。它提供了一种机制可以使开发者可以定义在一个actio
执行的前后执行的代码,也可以在一个actio
执行前阻止其执行。在这种策略下那些经常性的操作都被定义成相应的拦截器,如果用户的Actio
需要使用某些特定的通用功能,只需要在strutsxml文件中指定该拦截器引用。文件上传的传统方式采用手工方式进行上传,这种方式编程麻烦,而且需要全手动的控制二进流,相当烦琐。Struts2则在原有的文件上传项目基础上,进行了进一步封装,从而更进一步简化了文件上传。
第2页共27页
f71
类型转换器类型转换器
在BS应用中,将字符串请求参数转换为相应的数据类型,是MVC框架提供的功能,而Struts2是很好
的MVC框架实现者,理所当然,提供了类型转换机制。与Struts1转换器不同,Struts2的类型转换器提供了非常强大的表现层数据处理机制,开发者可以利用Struts2的类型转换机制来完成任意的类型转换。711为什么要创建自定义的类型转换器为什么要创建自定义的类型转换器创建自定义的对于大部分的数据类型,开发者根本无需创建自定义的类型转换器,因为Struts2可以完成大多数常用的类型转换。例如,字符串与整型值之间的转换、字符串与实型之间的转换等。但是在某种情况下,为了提高开发效率,必须要自定义数据类型转换器,例如,当需要将一个字符转换成一个复杂对象时,自定义类型转换器就可发挥强大的作用了。假设存在一个Poi
t类,定义如下:
publicclassPoi
tprivatei
tx定义x属性privatei
ty定义y属性getter、setter方法省略…
因为对于Web应用而言,所有的请求参数都是字符串类型,因此常r