类型转换.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
类型转换

类型转换 * 类型转换的意义 所有的mvc框架,都需要负责收集用户请求参数,并传给应用的控制器组件 web应用中,http中所有的信息都是String类型,但java是强类型语言,因此 ,mvc框架必须将这些字符串转换成相应的数据类型。 * 类型转换示例----TypeConvent TypeConvent jsp页面把收集到的用户信息提交给Servlet,Servlet负责将请求信息封装成一个UserBean的值对象(VO)。 该应用,对用户输入的4个字符串参数,需要手工在Servlet中进行类型转换,并将其封装成请求参数的值对象,异常烦琐。 一个mvc框架,同样需要将请求参数封装成VO对象。因此,必须把请求参数转换成VO类中各属性对象的数据类型---这就是类型转换的意义。 * Struts2内建的类型转换器 simpleConvert boolean和Boolean char和Character int和Integer long和Long float和Float double和Double Date 数组:默认情况下,数组元素是字符串 集合:默认情况下,假定集合元素是字符串 * 基于OGNL的类型转换---DirectToObject struts2内置的类型转换器可以完成基本数据类型与字符串之间的转换,这些都是简单类型之间的转换 sturts2也支持直接将字符串转换成复合类型 DirectToObject * 自定义类型转换器--- LocalConverter 大部分时候,使用Struts2提供的类型转换器,就能满足大部分类型转换需求。 但如果要把一个用户输入的字符串转换为某一个对象,就需要自定义类型转换器 例如,用户输入一个abc,xyz字符串,需要将其转换为一个User类型实例,abc为User实例的name属性,xyz为User实例的password属性 * 继承DefaultTypeConverter实现自定义类型转换器--- LocalConverter struts2类型转换基于OGNL实现,OGNL包括一个类型转换必须实现的接口TypeConverter。 OGNL提供该接口的实现类DefaultTypeConverter 开发人员可以继承该类实现自定义类型转换器 需要重写DefaultTypeConverter类的convertValue方法 * convertValue方法--- LocalConverter convertValue转换是双向的 convertValue方法有3个参数 Map context:类型转换环境的上下文 Object value:需要转换的参数。随着转换的方向不同,value参数的值也不一样 Class toType:转换后的目标类型,也会随着转换方向的不同而不同 从字符串转换为User类型时,value是一个字符串数组,而不是一个字符串 * 类型转换器的注册--- LocalConverter 实现了自定义类型转换器之后,须将该类型转换器注册在web应用中,struts2框架才可以正常使用。 局部类型转换器---只对某个action的属性起作用 注册文件名: ActionNperties 该注册文件和Action的字节码文件存放在相同位置。 ActionName是需要转换器生效的Action的类名 后面是固定部分 注册文件信息: propertyName=类型转换器类 propertyName是Action类中需要类型转换的属性名,“类型转换器类”是开发人员定义的类型转换器类的全限定类名(需要加包前缀) * 类型转换器的注册---GlobalConverter 全局类型转换器 配置对多个action包含相同类型的属性 注册文件名: perties 文件存放在WEB-INF/classes目录下 注册文件信息 复合类型=对应的类型转换器 需要完成类型转换的复合类,指定类型转换的转换器 lee.User=lee.UserConverter0 * 继承StrutsTypeConverter实现自定义类型转换器--- 为了使类型转换器的程序逻辑更清晰,struts2提供了StrutsTypeConverter抽象类,它是DefaultTypeConverter类的子类。 convertFromString:字符串转换为复合类型 convertToString:复合类型转换为字符串 * 数组和集合属性的类型转换器 数组属性的类型转换器 请求参数是字符串数组时,action中需要使用相应的数组类型属性来封装该请求参数。 ArrayConverter 集合属性的类型转换器 action中也可以使用集合属性来封装字符串数组的请求参数 ListConverter * 类型转换

文档评论(0)

me54545 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档