我是struts的新手。我不确切地知道我的问题的解决方案是否正确。 我的问题是我有两个表,如下所示
我想基于上表创建一个HTML表格,显示字段,组名,组ID,子组名称和子组ID。我试图使用list和iterator。但我无法同时获得这两个值(名称和ID)
内部课程
public List getName() {
return namesHead;
}
public void setName(List name) {
this.namesHead = name;
}
public String listModules() {
SessionFactory factory = HibernateLoginUtil.getFactory();
Session session = factory.openSession();
Query q1 = session.createQuery ("select id,name FROM TableUsrModuleGroup WHERE stat='active'");
for(Iterator it = q1.iterate() ; it.hasNext() ;) {
Object row[] = (Object[]) it.next();
namesHead.add (row[1]); //put the name
}
return SUCCESS;
}
JSP页面中的
<table>
<s:iterator status="status" value="namesHead" >
<tr><td><s:property/></td></tr>
</s:iterator>
</table>
(我只能从上面的代码中获取组名,我需要显示组名,组ID,子组名和子组ID)
答案 0 :(得分:0)
如果您正在使用Hibernate,我认为最简单的选择是映射这两个类,然后使用HQL查询恢复它们。例如:
public class Group {
@OneToMany (mappedBy = "group", fetch = FetchType.LAZY)
private Collection <SubGroup> subgroup;
... // Rest of the class, getters and setters
}
public class SubGroup {
@ManyToOne (fetch = FetchType.LAZY)
private Group group;
... // Rest of the class, getters and setters
}
然后你必须使这个HQL查询获得Group
类:
Query q = session.createQuery ("FROM SubGroup");
List<SubGroup> subgroups = (List<SubGroup>) q.list();
然后在Action中设置子组的属性,然后在jsp中访问它们。
<table>
<s:iterator value="subgroups" >
<tr>
<td>
<s:property value="name"/>
</td>
<td>
<s:property value="id"/>
</td>
<td>
<s:property value="group.name"/>
</td>
<td>
<s:property value="group.id"/>
</td>
</tr>
</s:iterator>
</table>
我希望它有帮助=)
答案 1 :(得分:0)
获取对象,而不是数据库中的特定字段。您必须在操作中为该对象设置getter和setter,然后在JSP中,您可以获取该对象的所有属性(不要忘记对象的setter / getter)。