有一个库存表(baseStorageDef),跟部门表(dept),库存表的部门ID对应部门表的ID,映射关系都是建好了的,我在查询库存表的时候,它是不是能把所关联的部门表查出来,如果能,那么我在页面里边怎么显示出该部门的名字?
迭代出来
首先 是你的迭代循环使用错误,你不明白s:iterator的用法
<搭码s:iterator status="status" value="baseStorageDefList" id="tb">
<s:property value="sysDepts.name"/>
</s:iterator >
你的id 是 tb 而又用<s:property value="sysDepts.name"/>
输出 sysDepts 这个对象根本不存在啊
比如库存是 Store 部门是野枯Dept
Store 对象中有dept属性 是Dept 对象颂枝洞
Dept 有一个熟悉deptName 表示部门名称
那么正确的迭代方法是
<s:iterator status="status" value="baseStorageDefList" id="tb">
<s:property value="tb.dept.deptName"/>
</s:iterator >
你只要建立好类之竖伏间的关联关改清系。hibernate 会自动把所有的数据会查出来, 但是hibernate是用LazyLoad实现的, 你必须保证在Session关闭之前吧Set集合中(也就是dept)数据取出来余歼携。然后就可以把数据送到JSP中
如果关联关系正确 当然能 baseStorageDef.dept.getId() 不知道你的实体名 用数耐册卜据姿举库昌穗表名代替的
<s:iterator status="status" value="baseStorageDefList" id="慎兄tb"> // 第一行有错。 如果李祥你是用宽扰袭request存的查询结果那么value="#request.baseStorageDefList" 下面的都没问题
<s:property value="sysDepts.name"/>
</s:iterator >
基础 基础 tmd就连
培训机构出来的都会查数据库 你能好好搞搞基础么