请教:使用hibernate连接查询出来的结果存放在list中,事实上,list中的每个对象都是一个Object[],现在的问题是,在jsp中使用struts2的iterator标签怎么迭代显示结果?
例:用户表和部门表关联,查询出来的list包含Users对象和Department对象,在jsp中使用struts2的iterator标签怎么迭代显示结果?
谢谢大家

解决方案 »

  1.   

    贴出来你的查询语句,Users类和Department类!
      

  2.   

    那首先你就是创建一个dto,把你的那个list生成的object的所有对象放到那个dto中,然后放置到request里面,在页面中设置到<s:iterator id="list" value="#request.list">   
    <s:property value="" />----value中放置的就是那个dto定义的每一个属性
    <s:property value="" />----value中放置的就是那个dto定义的每一个属性
    <s:property value="" />----value中放置的就是那个dto定义的每一个属性
    </s:iterator>懂??
      

  3.   

    public class Users{
    private String userName;
    private Department dept;
    //getter/setter...
    }public class Department{
    private String depName;
    ....
    }
    hql:
    from Users user,Department dep where user.dep=dep
      

  4.   

    谢谢,这个方法我也想过,但是为每个连接查询结果都建立这么一个类,是不是太麻烦了,struts2的iterator标签处理不了这种情况?EL表达式呢?
      

  5.   

    你没有用hibernate吗?怎么可能都会呢,只是对你需要做的list页面才使用的撒,只是对hibernate对应的属性的model属性重新整合下了,在项目中常用的
      

  6.   


    简单的Demo
    后台action
    public class StudentAction {
    private Integer id;
    private String dece;
    private String love;
    private String username;
    private List resultList;//用于返回前台需要的结果
             省略set get 方法 public String find(){
    ActionContext ctx = ActionContext.getContext();

    Dao dao = new Dao();
    try {
    resultList = dao.find();

    return "suc";
    } catch (Exception e) {
    // TODO: handle exception
    return "error";
    }
    }}
    页面<s:iterator value="resultList" status="index" id="l">
    <s:if test="${id == '18'}">
    test Success
    </s:if>
    <s:if test="#index.odd == true">
    <tr style="background-color:#FFFF00">
    </s:if>
    <s:else>
    <tr>
    </s:else>
    <td>用户名</td>
    <td>
    <s:property value="username"/>
    <s:property  value="love"/>
    <s:property value="lastmodifytime"/>
    <a href="Delete.faces?id=<s:property id="l" value="id"/>">
    删除
    </a>

    <a href="Edit.faces?id=<s:property id="l" value="id"/>">
    编辑
    </a>
    </td>
    </s:iterator>
      

  7.   


    <c:forEach items="${list}" var="role">
    <tr>
               <td align="center" vAlign="center">${role.roleId }</td>
       <td align="center" vAlign="center">${role.roleName }</td>
       <td align="center" vAlign="center">${role.TOrganization.orgName }</td>
       <td align="center" vAlign="center">${role.re }</td>         
       </td>
    </tr>
    </c:forEach>
      

  8.   

    2.1后面的再标签里面将不支持el,全部使用ognl
      

  9.   

    在iterator里在嵌套一个就行了 刚刚试了 7楼 通过表名 获取属性名 获取pojo class
    是可以实现通过表名来输出数据的