业务有这个需求
hql查询多张表,每张表呢只需要其中部分字段(页面显示使用)如:
select a.name,a.age,b.price,b.time,c.number from A a,B b ,C c where a.id=b.id and b.time=c.time;
现在 返回一个List(有可能满足条件的有多个)。我应该怎么做才能在遍历显示出来
使用 jsp+ssh2

解决方案 »

  1.   

    把查询得到的list内容放到formbean里面,在页面上循环读出来
      

  2.   

    在JAVA后台的.java类里能够得到list,然后在页面上使用标签的<s:iterator。。>循环取到你想要显示的就可以了
      

  3.   

    1、建议使用一个DTO来接数据库返回的临时表
    你可以建立一个JavaBeanselect a.name,a.age,b.price,b.time,c.number from A a,B b ,C c where a.id=b.id and b.time=c.time;JavaBean
    class X{
     private String aname;
     private int aage;
    private double bprice;
    private Date btime;
    private int cnumber;
    //setter and getter; 
    }
    查询的东西装这个DTO里就可以了。使用起来跟其他Domian没区别、
    根据你的HQL来建立你需要的字段以及属性,然后在前台就好遍历了、
    2、如果你不想建立DTO。可以三表联查(需要的是查三个表全部字段,只要带上条件就行)(数据量大的话、效率肯定是很差的、)、用一个list 接就好、然后你在前台获取可以使用struts标签迭代<s:iterator value=“你的list”var=“x”> a的name字段值是:<s:property value="#x[0].name"/>
     b的price字段值是:<s:property value="#x[1].price"/>
    c的number字段值是: <s:property value="#x[2].number"/></s:iterator>
      

  4.   

    直接用sql查,查出来是一组Object类型的数组,遍历该数组把内容赋给自定义的模型类,在jsp页面遍历List<模块类>。
      

  5.   

    关于1、你查询的时候需要把查询的东西转型到DTO里select a.name as aname ,a.age as aage ,b.price as bprice,b.time as btime,c.number as cnumber from A a,B b ,C c where a.id=b.id and b.time=c.time;还需要Hibernate 的Transformer 具体可以百度之 google之例子:
    SQLQuery sqlQuery = session.createSQLQuery(hql.toString()).setResultTransformer(new AliasToBeanResultTransformer(X.class));//X为你的DTO javaBean
    //transformer 有几种写法 你可以百度下、我测试写的是这种可以通过、
    List list = sqlQuery.list();
    return list;
      

  6.   


    写错 。 是hibernate的Query  不是SQLQuery
      

  7.   

    顶一个,建一个DTO类即模块型类来接收数据,jsp页面直接遍历就可以显示!
      

  8.   

    例如   <s:iterator value="cats" var="c">
    <a href='book_list.action?id=<s:property value="#c.id"/>&pid=<s:property value="pid"/>&p=1'><s:property value="#c.name" />&nbsp;(<s:property value="pnum" />)</a>
    </s:iterator>
      

  9.   

    struts的action里定义一个list(要有get,set方法),jsp页面上<iterator>遍历这个集合,输出对象
      

  10.   

    在action里定义一个list,把查询得到的值放到list里,然后再页面上这样写:
    <s:iterator value="list" var="bean">
    <s:property value="#bean.attribute" />
    ...
    </s:iterator>