struts2第七章类型转换_第1页
struts2第七章类型转换_第2页
struts2第七章类型转换_第3页
struts2第七章类型转换_第4页
struts2第七章类型转换_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

第七章类型转换本章目标OGNL类型转换集合类型转换自定义类型转换类型转换Java是强类型语言,而MVC框架从用户接受过来的数据均是字符串,那么MVC框架就需要将请求的字符串转换成相应的数据类型Struts2提供了非常强大的类型转换支持Struts2类型转换机制的基础是OGNL表达式可以使用ONGL表达式来命名参数例如,Action类有user属性(类型为User,并有相应的setter和getter方法),那在表单页面相应的使用OGNL表达式命名,如、user.age等表现层数据处理在B/S应用中,表现层主要用于与用户交互,数据的流向主要是输入数据和输出数据,也就是用户向服务器提交数据,服务器向用户展示数据对于表现层,主要是需要完成由用户输入的字符串形式的数据转换为对应的数据类型内置的类型转换器Struts2已经完成大多数常用的类型转换器boolean和Booleanchar和Characterint和Integerlong和Longfloat和Floatdouble和DoubleDatearraycollection内置类型转换器-1User.java代码内置类型转换器-2RegUserAction.java代码struts.xml片段代码注意:属性及方法名称内置类型转换器-3regUser.jsp代码内置类型转换器-4e.jsp代码运行效果如下图集合类型转换Struts2对集合类型转换提供了很好的支持可以使用集合对象来保存表单提交的数据对于表单提交多个相同类别的信息很有帮助支持如:List、Map、Set等对集合的支持在Action中,将相关属性的泛型取消在对应的Action目录下创建名为<Action类>-perties的文件在该文件下指定集合元素的数据类型如果集合是java.util.List,格式为:Element_xxx=复合类型其中Element是固定的,xxx表示Action中属性的集合属性名,复合类型是集合元素类型的完全限定名如果集合是java.util.Map,格式为:Key_xxx=复合类型其中Key是固定的,xxx表示Action中属性的集合属性名,复合类型是集合元素类型的完全限定名对List的支持-1Book.java代码对List的支持-2BookListAction.java代码struts.xml片段代码对List的支持-3在BookListAction.java同目录下添加BookListAperties添加Action中books集合属性的集合元素的类型对List的支持-4orderList.jsp代码对List的支持-5bookList.jsp代码运行结果如下图对Map的支持-1BookMapAction.java代码对Map的支持-2struts.xml代码在BookMapAction.java所在目录下添加BookMapAperties文件对Map的支持-3orderMap.jsp代码bookMap.jsp代码对Map的支持-4运行效果如下图orderMap.jsp页面orderMap.jsp页面对Set的支持Set集合并不维护元素加入的顺序,也不能通过索引来访问元素在Struts2提供了使用JavaBean对象的属性来索引集合元素方式,通过元素属性值来唯一获取Set集合中的元素用于索引集合元素的属性在<Action类名>-perties文件中通过KeyProperty_xxx=yyy来指定其中,xxx表示集合类型的属性,yyy表示是集合元素(即JavaBean对象)的属性名对Set的支持-1BookSetAction.java代码struts.xml代码对Set的支持-2在BookSetAction.java所在目录下添加BookSetAperties文件说明在BookSetAction类中必须要实例化books属性第2行,指定集合对象第3行,表示引用的集合元素为null时,框架会自动实例化该对象对Set的支持-3orderSet.jsp代码对Set的支持-4bookSet.jsp代码运行结果如下图自定义类型转换器-1如果Struts2内置类型转换器不能满足应用需求,那么可以另外开发一个类型转换器,从而自动实现类型转换需要实现ognl.TypeConverter接口,实现其中的convertValue()方法通常,可以继承OGNL中的工具类ognl.DefaultTypeConverter,它已实现ognl.TypeConverter接口,并提供了一个简化的convertValue()方法,如下所示:convertValue(Mapcontext,Objectvalue,ClasstoType)方法context:表示OGNL上下文的Map对象value:表示需要转换的对象toType:表示需要转换的目标类型自定义类型转换器-2DateConverter.java代码自定义类型转换器-3通常,还可以继承Struts2中的抽象类org.apache.struts2.util.StrutsTypeConverter,方法如下publicabstractObjectconvertFromString(Mapcontext,String[]values,ClasstoClass)表示将一个或多个字符串值转换为指定的类型context,表示action上下文的Map对象values,表示要转换的字符串值toClass,表示要转换的目标类型publicabstractStringconvertToString(Mapcontext,Objectobject)表示将指定的对象转换为指定格式的字符串context,表示action上下文的Map对象object,表示要转换的对象自定义类型转换器-4BirthdayConverter.java代码自定义类型转换-1Student.java代码自定义类型转换-2StudentAction.java代码struts.xml片段代码自定义类型转换-3studentRegister.jsp代码studentInfo.jsp自定义类型转换-4配置自定义转换器应用于全局范围的类型转换器通常在WEB-INF/classes目录下创建perties文件,并提供相应的属性定义。其中,属性是要转换的类的名称,属性值是类型转换器的名称例如:java.util.Date=xx.xx.XxxConverter应用与特定类的转换器配置针对某个特定类的类型转换器,方法是在类所在的包中创建<ClassName>-c

温馨提示

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

评论

0/150

提交评论