例如有3个表
public TModules
{
public int id;
set;get;
}
public TRoles{
public int id;
set;get;
}
public TRolesTModules
{
public int id;
public int mid;
public int rid
set;get;
}
通过HQl查询语句:例如(from TModules as tm,TRoles as tr,TRolesTModules as trm where tm.id=trm.mid and trm.rid = tr.id)得到的List结果是这3个对象的一List,我如果通过struts2的循环标签写的话应该怎么写出来,如果是一个表的话直接用在<s:iterator value="#reuqest.list"><s:propotey value="id">这个ID直接就是一个对象的属性就可以了,但是多表的情况这样写就不对了,我debug的时候看到应该是这样排列List[i][TModules]List[i][TRoles]List[i][TRoleTModule]这样子我不知道在页面怎么把这个List给在页面上循环出来,不知道有没有高手能指点我一下,很急 工作中 期待答案

解决方案 »

  1.   

    <s:iterator value="#reuqest.list"> <s:propotey value="id[i]">中间的i就是一个数组.同你查询的列的顺序!
      

  2.   

    struts 2。0 的标签没搞过 
    struts 1.x 
    <logic:iterator id="id" property="list" scope="request" >
    ${id[0]}第一个对象 
    ${id[1]}第二个对象
    ${id[2]}第三个对象
    </logic:iterator>
    要取道具体值是 直接加属性名就可以了
    ${id[0].xxx}
      

  3.   

    涉及到多个表查询的话,建议把查询出的list转换成数组在页面上去遍历。
    因为那样的话查询出来就不是一个完整的对象了。
    你需要什么字段的数据,读取对应的即可
      

  4.   

    3个对象的那个顺序还是整个list的i
      

  5.   

    郁闷什么,想要什么对象属性就取出来,多个表也一样,最后结果集返回个集合,比如ARRARLIST,如果属性常用就自己个BEAN,把集合循环附到bean里,每个值都是一个OBJECT对象,你只要转换类型就可以了,再把每个BEAN放到一个集合中,再页面遍历
      

  6.   

    <s:iterator var="m" value="list">
       <s:property value="#m[0].cid" />
    </s:iterator>是第几个对象就[n]
    我这边取的是第一个对象的cid对象