0

我是新来的struts。我不知道我对我的问题的解决方案是否正确。我的问题是我有两个表,如下所示

关系表

我想根据上述表格创建一个 HTML 表格,显示字段、组名称、组 ID、子组名称和子组 ID。我尝试使用列表和迭代器。但我无法同时获得这两个值(名称和 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)

4

2 回答 2

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>

我希望它有帮助 =)

于 2012-10-27T08:56:40.780 回答
0

从数据库中获取对象,而不是特定字段。您的操作中必须有该对象的 getter 和 setter,然后在 JSP 中您可以获得该对象的所有属性(不要忘记对象的 setter/getter)。

于 2012-10-27T09:42:00.877 回答