<sql:query var="vote" dataSource="${mydate}">
 select allnum,q1,num1,q2,num2,q3,num3 from Aisdf_vote where id=${id}
</sql:query>
<c:forEach var="i" begin="1" end="3">
  <tr>
   <td>${vote.rows[0].q+i}</td>
   <td class="voteview"><img src="/images/vote/${i}_1.gif" /></td>
   <td>${vote.rows[0].num1}票</td>
  </tr>
</c:forEach>代码我简化了下,看的清楚点..就是这个i应该怎么赋值进去呢????就是依次查询q1,q2,q3的内容.....
有哪位达人知道否????100分送上~~~

解决方案 »

  1.   

    这没办法实现。
    你不用 forEach 不行吗?
      

  2.   

    你的意思是让i从1到3么?<c:forEach varstate="i" begin="1" end="3">${i.count}  </c:forEach>
    varstate还有index和first,last属性,看看JSTL吧
      

  3.   

    楼主改用这个标签行不? <logic:iterate/>
      

  4.   

    和JSP的<%%>结合吧.纯用JSTL应该没有办法实现.首先要知道vote.rows[0]是什么类型,如果它是一个HashMap
    <c:set var="temp" value="${vote.rows[0]}"/>
    <% HashMap map = pageContext.getAttribute("temp");%>   //这里视范围不同或用session.getAttribute 等
    <c:forEach var="i" begin="1" end="3"><tr>
    <td>  <%= map.get("q"+pageContext.getAttribute("i"));%></td>
    <td class="voteview"><img src="/images/vote/${i}_1.gif" /></td>
    <td>${vote.rows[0].num1}票</td>
    </tr>
    </c:forEach>
      

  5.   

    这里vote.rows[0]其实就是我简单点的替换..就是只有第一条数据.可以用row代替即:vote.rows[0].id=row.id就是把i值替换进去把q${i}里的值找成q1,q2,q3这些,,而q1,q2,q3这些值又是一条数据里的列,再通过row.q*查询出来...等于说就是表达式里面再套表达式.
    可以我没说清楚吧..还是谢谢楼上几位...另galant2008(無賴),djy1135(晨阳): 偶这个东西因为只想用jstl五个基本标签做..所以不准备因为一个地方而改变初衷....偶连自写标签都放弃了.呵呵..虽然有时代码看上去会比较多...但对研究jstl很有好处..基本用不了什么函数..通常都是想办法用sql来解决...看来要是没办法..偶只有复制复制了....只不过html里看上去一片..不舒服啊~~哈哈...
      

  6.   

    没有必要复制的,上面那个变通的办法你是可以考虑的. 虽然加杂了JSP代码,但总的看来也只是多了两行代码.应该比你弄一大片类似的html好的多!