Struts2笔记——类型转换
2015-08-27 12:00
337 查看
概述
* 从一个HTML 表单到一个Action 对象, 类型转换是从字符串到非字符串.
>HTTP 没有 “类型” 的概念. 每一项表单输入只可能是一个字符串或一个字符串数组. 在服务器端, 必须把 String转换为特定的数据类型
* 在 struts2 中, 把请求参数映射到 action 属性的工作由 Parameters 拦截器负责, 它是默认的 defaultStack 拦截器中的一员. Parameters拦截器可以自动完成字符串和基本数据类型之间转换.
===================================
接收请求参数
采用基本类型接收请求参数
在Action类中定义与请求参数同名的属性,struts2便能自动接收请求参数并赋予给同名属性。
![](http://r.photo.store.qq.com/psb?/V12MyHON4TqWm3/pLigUDRgjJRRid7ZgHqxp9C2EWI3r6EqvzeKdjqPEDw!/o/dG4AAAAAAAAA&bo=SQKzAEkCswADACU!)
java.util.Date类型的属性可以接收格式为yyyy-MM-dd的请求参数值。但如果我们需要接收格式为yyyyMMdd的请求参数,我们必须定义类型转换器,否则struts2无法自动完成类型转换。
![](http://r.photo.store.qq.com/psb?/V12MyHON4TqWm3/KOmqCGfMUbaVPVXlxydA.Upmmt3LGvHLJg1bU*ok0wo!/o/dIoBAAAAAAAA&bo=DwKtAQ8CrQEDACU!)
===================================
定制类型转换器
* 自定义类型转化器必须实现ongl.TypeConverter 接口或对这个接口的某种具体实现做扩展
![](http://r.photo.store.qq.com/psb?/V12MyHON4TqWm3/zpwVsmvAdUQxs0DuW09O7XYlz2CnCrQqxTr9X28qpj8!/o/dIYBAAAAAAAA&bo=PwH*AD8B*wADACU!)
===================================
配置自定义类型转换器
在应用程序里使用一个自定义的类型转换器之前, 必须先对它进行配置.
这种配置既可以基于字段,也可以基于类
-------------------
基于字段配置(局部): 可以为某个动作的各个属性分别制定一个自定义的转换器.
1. 创建一个属性文件: ActionClassName-conversion.properties, 该文件需和相对应的动作类(Action)放在同一个目录,ActionClassName是Action的类名,后面的-conversion.properties是固定写法.在properties文件中的内容为:
属性名称=类型转换器的全类名
对于本例而言,文件的名称应为UserAction- conversion.properties
2. 编辑属性文件:
createTime=cn.itcast.converter.DateConverter
------------------
基于类配置(全局):
* 在 WEB-INF/classes/ 目录下创建 xwork-conversion.properties 文件.
* 在properties文件中的内容为:
待转换的类型=类型转换器的全类名
* 对于本例而言, xwork-conversion.properties文件中的内容为:
java.util.Date= cn.itcast.converter.DateConverter
===================================
类型转换与复杂对象配合使用
很多时候, 需要把表单字段映射到多个对象的不同属性上
form 标签可以被映射到一个属性的属性.
![](http://r.photo.store.qq.com/psb?/V12MyHON4TqWm3/mso27vdU5a.hlubqxjKeIwp5TquVFc8X.TsG4lC.F4E!/o/dIgBAAAAAAAA&bo=OgOKAToDigEDACU!)
===================================
类型转换与Collection配合使用
* Struts 还允许填充 Collection 里的对象, 这常见于需要快速录入批量数据的场合
![](http://r.photo.store.qq.com/psb?/V12MyHON4TqWm3/MJ*KYkkYd6ODraOD6QbA3bKDm*3Hx6mP6u2c6ghtwyk!/o/dIgBAAAAAAAA&bo=ZAOGAWQDhgEDACU!)
* 从一个HTML 表单到一个Action 对象, 类型转换是从字符串到非字符串.
>HTTP 没有 “类型” 的概念. 每一项表单输入只可能是一个字符串或一个字符串数组. 在服务器端, 必须把 String转换为特定的数据类型
* 在 struts2 中, 把请求参数映射到 action 属性的工作由 Parameters 拦截器负责, 它是默认的 defaultStack 拦截器中的一员. Parameters拦截器可以自动完成字符串和基本数据类型之间转换.
===================================
接收请求参数
采用基本类型接收请求参数
在Action类中定义与请求参数同名的属性,struts2便能自动接收请求参数并赋予给同名属性。
java.util.Date类型的属性可以接收格式为yyyy-MM-dd的请求参数值。但如果我们需要接收格式为yyyyMMdd的请求参数,我们必须定义类型转换器,否则struts2无法自动完成类型转换。
===================================
定制类型转换器
* 自定义类型转化器必须实现ongl.TypeConverter 接口或对这个接口的某种具体实现做扩展
===================================
配置自定义类型转换器
在应用程序里使用一个自定义的类型转换器之前, 必须先对它进行配置.
这种配置既可以基于字段,也可以基于类
-------------------
基于字段配置(局部): 可以为某个动作的各个属性分别制定一个自定义的转换器.
1. 创建一个属性文件: ActionClassName-conversion.properties, 该文件需和相对应的动作类(Action)放在同一个目录,ActionClassName是Action的类名,后面的-conversion.properties是固定写法.在properties文件中的内容为:
属性名称=类型转换器的全类名
对于本例而言,文件的名称应为UserAction- conversion.properties
2. 编辑属性文件:
createTime=cn.itcast.converter.DateConverter
------------------
基于类配置(全局):
* 在 WEB-INF/classes/ 目录下创建 xwork-conversion.properties 文件.
* 在properties文件中的内容为:
待转换的类型=类型转换器的全类名
* 对于本例而言, xwork-conversion.properties文件中的内容为:
java.util.Date= cn.itcast.converter.DateConverter
===================================
类型转换与复杂对象配合使用
很多时候, 需要把表单字段映射到多个对象的不同属性上
form 标签可以被映射到一个属性的属性.
===================================
类型转换与Collection配合使用
* Struts 还允许填充 Collection 里的对象, 这常见于需要快速录入批量数据的场合
相关文章推荐
- Struts - 标签库
- struts1.0于struts2.0的比较
- Struts2中关于namespace的学习心得
- Struts2----自定义action的学习心得
- struts2.0拦截器(实现未登录的用户不能访问系统的页面)(转)
- 软件开发疑惑解答
- struts2登陆拦截器
- struts2框架原理
- web.xml
- web.xml
- struts2框架原理
- struts2登陆拦截器
- liferay中配置Struts2
- struts2 拦截器和actioninvocation
- stuts2注解
- Struts 2国际化
- FilterDispatcher和StrutsPrepareAndExecuteFilter的作用及应用
- 刚学的Struts2的一些结构
- 学习笔记——回顾struts2文件上传
- 实战开发企业级ERP进销存管理项目视频教程下载