第六章类型转换.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章类型转换.ppt

第六章:类型转换 本章内容 6.1 类型转换概述 6.2 自定义转换器 6.3 高级类型转换 6.1.1 类型转换的原因 客户端浏览器只能将字符串传送到服务器(文件上传除外),而服务器端java语言是强类型语言,数据类型非常丰富,这就造成B/S两端的类型不兼容问题. 传统做法: 将客户端数据转变成int int v = Integer.parseInt(request.getParameter(“user”)); 缺陷: 过程烦琐枯燥. 6.1.2 类型转换的概念 所有页面与控制器传递的数据均为String类型,而我们在对其进行处理时可能会用到各种数据类型,程序无法自动完成数据类型的转换,需要我们在代码中手动完成,这个过程称为类型转换。 6.1.3 Struts2的内置类型转换器 Struts2提供了强有力的表现层类型转换机制,无需程序员过多干预即可自动完成转换. Struts能自动处理类型转换过程中出现的未知异常. Struts 2提供的自动类型转换,包括如下几种类型: 6.1.4内置类型转换器对集合的支持 对List集合的支持: 对Map集合的支持: 第六章:类型转换 本章内容 6.1 类型转换概述 6.2 自定义转换器 6.3 高级类型转换 6.2.1 创建自定义类型转换器 当Struts2内置的转换器不能满足你的应用需求,你可以开发自己的类型转换器。 三种方法可以创建自定义类型转换器: 实现ognl.TypeConverter接口 继承DefaultTypeConverter类 继承StrutsTypeConverter类 6.2.1 创建自定义类型转换器 TypeConverter接口中只有一个方法convertValue,该方法过于复杂, 所以我们一般使用DefaultTypeConverter类,该类实现了TypeConverter接口,并提供了一个简化的convertValue()方法。 参数context是表示OGNL上下文的Map对象,target是需要转换的对象,toType是要转换的目标类型。 6.2.1 创建自定义类型转换器 除了可以继承OGNL中的DefaultTypeConverter类外,还可以继承struts2中给出的org.apache.struts2.util.StrutsTypeConverter抽象类。StrutsTypeConverter继承自ognl.DefaultTypeConverter类,它提供了两个抽象的方法用于字符串和其它类型的相互转换。这两个方法如下所示: 6.2.2 编写类型转换器—继承 DefaultTypeConverter类 6.2.3 编写类型转换器—继承 StrutsTypeConverter类 6.2.4 配置类型转换器 在struts2中提供了两种方式来配置转换器,一种是应用于全局范围的类型转换器, 另一种是应用于特定类的类型转换器。 注册自定义类型转换器有两种方法 特定类型转换器:只有特定的Action才可以使用 注册方法:在Action所在的包中建立properties文件,文件名格式:Action类名-conversion.properties,内容如下: 要转换的Action类的属性名=类型转换器全限定名 例如: birthday=com.neusoftconverter.DateTypeConverter 其中:birthday是action属性名 全局类型转换器:所有Action都可以使用 注册方法:在classpath下建立名为xwork-conversion.properties的文件,内容如下: 目标类型(全限定名)=类型转换器全限定名 例如: Java.util.Date=com.neusoft.converter.DateTypeConverter 6.2.5 类型转换的流程 1、用户进行请求,根据请求名在struts.xml中寻找Action 2、在Action中,根据请求域中的名字去寻找对应的set方法。找到后在赋值之前会检查这个属性有没有自定义的类型转换。没有的话,按照默认进行转换;如果某个属性已经定义好类型转换,则会去检查配置文件。 3、从文件中找到要转换的属性及其转换类。 4、进入转换类中,在此类中判断转换的方向。先进入从字符串到类的转换。返回转换后的对象。 5、将返回的对象赋值给Action中的属性,执行Action中的execute() 6、执行完execute()方法,根据struts.xml的配置转向页面 第六章:类型转换 本章内容 6.1 类型转换概述

文档评论(0)

love + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档