以前JSP页面的代码是:
 <% int j=1 ;%>
<table>
 <%
   if(j==1||j==4||j==7){
 %> 
<tr>
 <%}%>
  ………………其他代码
 <%
   if(j==3||j==6||j==9){
 %> 
</tr>
 <%}%>
</table>
请教高手改成JSTL加EL表达式应该怎么写?
我这样写,打印出来的都是空白<c:set var="j"  value="1" scope="page"/>
<c:if test="${j==1 or j==4 or j==7}">
<tr>
</c:if>
  …………
<c:if test="${j==3 or j==6 or j==9}">
</tr>
</c:if>
<c:set var="j" value="${j+1}" scope="page"/>

解决方案 »

  1.   

    错误没错误 以前能正确打印表格里的内容
    现在是<tr>和</tr>
    识别不出来了
    说以打印出来的是白板
      

  2.   

    <% int j=1 ;%>  相当于一个局部变量
    <c:set var="j"  value="1" scope="page"/>  相当与  <%!int j=1 ;%>
    说明:在此声明的变量、方法都会被保留成唯一的一份,直到JSP程序停止执行 
      

  3.   

    代码肯定是放在循环里的 主要实现的的功能是
    每行打印3个对象 
    当j==1打印一次<TR>打印完3个对象 即j==4 就打印 </4>
    用sriptlet 做一点问题都没有
    就想请教一下各位高手 改成 JSTL加EL表达式应该怎么写
      

  4.   

    难道在循环体中 在执行一次 <c:set var="j" value=${j+1} scope="page"/>也不能替换 或者 覆盖么
      

  5.   

    修改前代码:
    ArrayList list9=bookDAO.getBooks(pb);
    int j=1;
    String cco="";
    if(list9.size()!=0){
    %><table width="584" height="740"  border="0">
    <%
    Iterator it=list9.iterator();
    while(it!=null&&it.hasNext()){
    BookInfo info=(BookInfo)it.next();
    if(info.getBookCover()==null)
    cco="nocover.jpg"; 
    else cco=info.getBookCover().trim();
    if(j==1||j==4||j==7){%>
    <tr>
    <%}%>

    <td>
    <table width="148" border="1">
     <tr>
     <td height="148" colspan="2"><a href="showBook.jsp?isbn=<%=info.getBookIsbn()%>" target="_parent">
       <img src="bookcover/<%=cco%>" width="148" height="148"></a>
        </td>
      </tr>
      <tr>
       <td width="50" height="26"><font size="2"><%=info.getBookAuthor() %></font></td>
       <td><font size="2"><%=info.getBookName() %></font></td>
      </tr>
      <tr>
       <td width="50" height="23"><font size="2">价格:</font></td>
        <td><font size="2"><%=info.getBookPrice() %></font></td>
      </tr>
     </table>
    </td>
    <%if(j==3||j==6||j==9){%></tr>
    <%}%>
    <%j++;}%>
    <%} %>
    </table>
    修改后代码:
    <c:forEach var="book" items="${books}">
    <c:set var="cover" value="${book.bookCover}" scope="page"/>
    <c:if test="${cover==null}">
    <c:set var="cover" value="nocover.jpg" scope="page"/>
    </c:if> 
    <c:if test="${j==1 or j==4 or j==7}">
    <tr>
    </c:if>
    <td>
    <table width="148" border="0">
    <tr>
    <td height="148" colspan="2"><a href="showBook.jsp?isbn=${book.bookIsbn}" target="_parent">
        <img src="bookcover/${cover}" width="148" height="148"></a>
    </td>
    </tr>
    <tr>
    <td width="50" height="26"><font size="2">${book.bookAuthor}</font></td>
    <td><font size="2">${book.bookName}</font></td>
    </tr>
    <tr>
    <td width="50" height="23"><font size="2">价格:</font></td>
    <td><font size="2">${book.bookPrice}</font></td>
    </tr>
    </table>
    </td>
    <c:if test="${j==3 or j==6 or j==9}">
    </tr>
    </c:if>
    <c:set var="j" value="${j+1}" scope="page"/>
    </c:forEach>