Strut2有关<s:select>标签与Hibernate整合问题

在struts2中有关<s:select></s:select>它的一个属性listKey="";通常里边写的都是id而需要保存String类型,例如name是varchar型的就把listKey="name"这样就保存成name属性了,但一般我们用<s:select>都是嵌套一个类,详细如下:
我有一个GoosType类,他有两个属性,1.id Long型 2. name String型
另一个是Goods类,在表单页面我的struts标签为<s:select list="goodsTypeList" name="goods.goodsType.id" listKey="id"
listValue="name" emptyOption="false" />
这样在数据库中保存的是外键id的值,现在我想改成保存GoosType类的name属性,我的做法是1.将listKey="name",先将name="goods.goodsType.id"--改为-->name="goodsName",在相应的Action 定义了一个String 类型的变量goodsName,并生成相应的get、set方法,结果在Action的方法里打印出了GoosType类的name属性的值
。有一个问题就是修改页面标签为<s:select list="goodsTypeList" name="goods.goodsType.name" listKey="name"
listValue="name" emptyOption="false" />
结果Tomcat会报Nested in org.apache.jasper.JasperException: tag
'select', field 'list', name 'goods.goodsType.id': The requested list key 'goodsTypeList' could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name} - [unknown location]: tag 'select', field 'list', name 'goods.goodsType.id': The requested list key 'goodsTypeList' could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name} - [unknown location]错,我的Goods类中与GoodsType类的外键关联是:在Goods类有private GoodsType goodsType;在相应的entity.hbm.xml配置文件里
<many-to-one name="goodsType" class="GoodsType" column="goodsType"/>
通过Hibernate自动生成表,我在数据库中查看了一下goodsType类型是BIGINT(20);
后来我的做法是让通过goods.goodsType.id值在从数据库中取一遍,虽然有些啰嗦吧,但也是一种解决办法。如果各位大侠有什么好的建议或意见,麻烦给介绍一下,在下谢谢各位了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值