Struts中的类型转换1
基本类型转换
Struts2框架提供了一系列的基本类型转换器,可以在字符串类型和其他类型之间互相转换.
支持的类型如下:
String, boolean, char, int, dates, arrays, collections, Enumerations, BigDemical, BigInteger
在进行类型转换的时候,我们首先要创建一个JavaBean类
然后在Action中声明该Bean,并setter/getter
对于简单的数据类型,Struts2框架会帮我们自动转换
前提是我们定义好了标签的属性
- 这里要说明一下关于属性的问题
1 如果只是一个用户的话,只需要简单的定义一个类即可
private User user;
//这里定义的是单个user 标签属性设置 name="user.XXXX"即可
2 如果我们将用ArrayList来装数据,在表单的标签中要使用数组形式来命名
(这里要说明的是由于struts框架,数组名必须是ArrayList示例的名称)
private ArrayList<User> users;
// 例如这里定义的是users 那么在标签中属性name就要设置为name="users[i].XXXX"
// 如果没有定义泛型,可以采用配置文件形式来获取每个对象
这里只简单介绍一下关于ArrayList的配置文件形式
Element_users = com.model.User
// 需要注意这里的文件名字必须符合规则
// 然后将Action中的元素匹配对应的类,其中的转换过程有框架自动完成
3 如果我们用Map来装数据,标签中的名字又与ArrayList中不一样
private Map<String, User> users;
// 这里的String是用来做什么的呢? 其实很简单
// 首先观察标签中name的书写形式
// name="users['first'].XXXX"
// String就是用来接收first这一字符串来进行分组的,其实实际上与ArrayList的原理是一致的,不过就是ArrayList使用的是位置下标index,而Map是自定义的字符串,实际原理都是用来确定独立的空间位置
这里介绍一下关于Map的配置文件形式
Element_users = com.model.User
Key_users = java.lang.String
这里简单总结一下集合的类型转换:
1. 给集合定义泛型,框架将会自动完成转换
2. 不定义泛型,在局部转换配置文件中声明对应的类型