struts集合类型转换

struts中集合类型的转换

在struts中支持的集合类型有list、map和set,利用这三种集合类型可以保存表单提交的数据,尤其是多个相同类型的数据,如在客户端将一个含有表格的表单提交到服务器并保存到数据库中。

                                                                                       


图1

如图1.1所示,每一行都是一个学生对象,将这样一组数据提交到服务器并保存到数据库中时,服务器端就可以使用集合对象接受客户端提交的数据了。

下面以上图中的表单为例,开始介绍这三种不同集合的类型转换:

1、list集合转换步骤

(1)   创建学生对象Student,包含name和age两个属性,并提供相应的get,set方法。

(2)   创建action的实现类Action,在该action中创建一个List集合,并提供对应的get,set方法,其泛型为Student,但是这里要取消泛型。

在和action相同的路径下创建properties属性文件,属性文件的命名规则是:Action类名-conversion.properties

(3)   属性文件中添加制定元素的集合类型

格式为:Element_***=复合类型,其中***表示action中集合属性的属性名,复合类型是集合元素类型的完全属性限定名,即集合泛型的属性名,一般为包名.类名。

(4)   创建视图JSP页面,在jsp中设置表单元素的name属性值时要用

name=” list[0].age”、name=” list[0].name”这种格式,而不是一般的表单name=”name”.

(5)在action的访问方法中进行数据库操作,交获取的值添加到数据库中,这里可以使用hibernate来实现。

(6)在action.xml文件中配置相关的访问设置,然后访问jsp即可。

关键代码如下:

(1)   action中创建集合对象,访问函数和数据库操作

                                                                          

图2


图3

(2)   属性文件中的设置:


图4

(3)JSP提交页面中name属性的设置。


图5

2、map集合转化步骤:

(1)创建学生对象Student,包含name和age两个属性,并提供相应的get,set方法。

(2)创建action的实现类Action,在该action中创建一个map集合,并提供对应的get,set方法,其泛型为Student,不取消泛型,在和action相同的路径下创建properties属性文件,属性文件的命名规则是:Action类名-conversion.properties

(3)属性文件中添加制定元素的集合类型

格式为:Key_***=复合类型,其中***表示action中集合属性的属性名,复合类型是集合元素类型的完全属性限定名,即集合泛型的属性名,一般为包名.类名。

(4)创建视图JSP页面,在jsp中设置表单元素的name属性值时要用

name=”map[‘a’].name”、name=”map[‘a’].age”这种格式,而不是一般的表单name=”name”.这里的’a’值的是这一行数据的键,一般用字符串类型。

(5)在action的访问方法中进行数据库操作,交获取的值添加到数据库中,这里可以使用hibernate来实现。

(6)在action.xml文件中配置相关的访问设置,然后访问jsp即可。

核心代码如下:

(1)   action中创建集合对象,获取提交的数据并添加到数据库中

图6


图7

(2)   属性文件设置;


图8

(3)   jsp页面表单提交name属性设置

 

图9

3、set集合类型转换步骤:

步骤与list和 map的转换步骤是一样的,下面是不同之处的

(1)   属性文件的设置不同


图10

第一行表示:set集合通过关键字name来索引,因为set是一个无序可重复的集合,只能用过关键字来获取、添加、查找等操作。

第二行表示:action中的集合属性名以及集合元素的类型,即对象的全路径

第三行表示:当没有实例化集合属性对象时,自动实例化。因为set集合中要求实例化集合元素的属性。

(2)   提交页面表单name属性的设置不同

图11

makeNew[]是规定的写法,一般name都写成集合属性名.makeNew[].集合元素属性对象名,如:stuset.makeNew[2].name

主要就是以上两点区别,代码也基本相同,只要对list中的部分代码稍加改动即可。

总之,以上三种集合类型的转化原理,就是将客户端提交的数据存储在集合中,然后批量添加到数据库中。

备注:这是我在CSDN上发的第一篇博客,我只是想用这样一种方式来记录学习过程,希望以后也能坚持分享自己的学习心得,用这种方式来督促自己培养谨慎、认真的学习态度,同时看到我博客的人,如果觉得哪里不对,希望能提出来让我改正,我会虚心学习的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值