我现在有个产品列表页面,我想把这个页面的所有产品的价格汇总起来,来个总价格。改怎么做呢,这个页面用的是jstl标记
页面代码如下:
<c:forEach var="tousu" items="${pageBean.data}">
<td>${tousu.proname}</td>
<td>${tousu.protype}</td>
<td>${tousu.proprice}</td>
<td>${tousu.proamount}</td>
<td>${tousu.promoney}</td>   //产品价格
<td align="center">${tousu.adddate}</td>
</c:forEach>    

解决方案 »

  1.   

    在该页面对应的action类里把那个总价格算出来,然后显示!
      

  2.   

    <c:set var="n" value="0"> <c:forEach var="tousu" items="${pageBean.data}"> 
    <td>${tousu.proname} </td> 
    <td>${tousu.protype} </td> 
    <td>${tousu.proprice} </td> 
    <td>${tousu.proamount} </td> 
    <td>${tousu.promoney} </td>  //产品价格 
    <td align="center">${tousu.adddate} </td>
    <c:set var="n" value="${n+tousu.promoney}"> 
    </c:forEach>总价: ${n}
      

  3.   

    或者在页面加:
    <c:set value="0" var="sum" />
    <c:forEach var="tousu" items="${pageBean.data}"> 
    <td>${tousu.proname} </td> 
    <td>${tousu.protype} </td> 
    <td>${tousu.proprice} </td> 
    <td>${tousu.proamount} </td> 
    <td>${tousu.promoney} </td>  //产品价格 
    <td align="center"> ${tousu.promoney} </td>
    <c:set value="${sum + tousu.adddate}" var="sum" /> 
    </c:forEach>    
      

  4.   

    我建议还是在Module中算好了直接放到页面上比较好
      

  5.   

     建议在javabean里 算好
      

  6.   

    我是想在后台算,但是后台算了怎么传到显示页面哦,后台是这样的:                           Tousu post;
    while(rs2.next()){
    post = new Tousu();
    post.setProid(rs2.getInt("proid"));
    post.setProname(rs2.getString("proname"));
    post.setHtcode(rs2.getString("htcode"));
    post.setProtype(rs2.getString("protype"));
    post.setPromodel(rs2.getString("promodel"));
    post.setProfunction(rs2.getString("profunction"));
    post.setProamount(rs2.getInt("proamount"));
    post.setProunit(rs2.getString("prounit"));
    post.setProprice(rs2.getDouble("proprice"));
    post.setPromoney(rs2.getDouble("promoney"));
    post.setAdddate(rs2.getString("adddate"));
    post.setAddperson(rs2.getString("addperson"));
    post.setProdesc(rs2.getString("prodesc"));
    double totel = 0.0; 
    totel = rs2.getDouble("promoney") + totel;
        v.add(post);
    }
    该怎么传到前边去啊?
    按照三楼的我出现的 结果是:产品名称 产品类型 产品单价 产品数量 产品金额 添加日期 管理操作 
    有任务有合同 硬件 30000.0 1 30000.0 2009-07-02 09:36:29   
       总金额 30000.0 
    施工方 软件 20000.0 2 40000.0 2009-07-02 09:36:55   
       总金额 70000.0 
    我只想让最后显示总金额 70000.0 
    不想显示 总金额 30000.0 
    该怎么办呢?
      

  7.   


    正解 set临时变量即可。
      

  8.   

    <c:set var="n" value="0"> <c:forEach var="tousu" items="${pageBean.data}"> 
    <td>${tousu.proname} </td> 
    <td>${tousu.protype} </td> 
    <td>${tousu.proprice} </td> 
    <td>${tousu.proamount} </td> 
    <td>${tousu.promoney} </td>  //产品价格 
    <td align="center">${tousu.adddate} </td> 
    <c:set var="n" value="${n+tousu.promoney}"> 
    </c:forEach>
      

  9.   

    <c:forEach>循环计算值
    然后最后在用el表达式表示出来就可以了。
      

  10.   

    在后台算总金额以后 set到对应的变量里不就在页面得到了呀。
      

  11.   

    pageBean中提供一个 totalPrice的getter方法
    public float getTotalPrice(){
       
        float total = 0f;
        //total = 里边算出来总价格
        return total;
    }页面访问
    ${pageBean.totalPrice}
      

  12.   

    首先你的 double totel = 0.0;  // 这句话应该放在while循环外面 (上面)
    totel = rs2.getDouble("promoney") + totel; 算的结果后把值放在while循环下面
    放在request.setAttu....("totel",totel )作用域中就行了 
    在页面直接用El 表达式 ${totel}
      

  13.   

    后台算了怎么传到显示页面?这个不会?原来,呵呵!
    这样:在action里:
    request.setAttribute("total", total );
    然后在页面:
    $total
    就OK了!呵呵!