我在数据库中有4条信息就生成衣行4列的表格,如果有8条信息就生成2行4列的表格,但是我在jsp中设置了计数器j控制表格列数为4,但是服务器返回信息说我的变量错误??我的是int型,不知道怎么办,请各位达人指导指导.
 <%
int i=0;
 
smt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
sql="SELECT * FROM fugle_info";
rs = smt.executeQuery(sql); %>
<table width="565"  border="1" bordercolor="#00CCFF">
<% while(rs.next()) 
{   if(i%5=0)
{ i++;continue;}
else
i++; 
%>
   <tr>
    <td width="134"><p><img src="<%=rs.getString("PHOTOPATH")%>" width="140" height="214" /></p>
    <p><%=rs.getString("NAME")%>:<%=rs.getString("POST")%>(<%=rs.getString("ROLE")%>)</p></td>  </tr>
  <% }
  %>服务器信息
org.apache.jasper.JasperException: Unable to compile class for JSPAn error occurred at line: 18 in the jsp file: /untitled.jsp
Generated servlet error:
C:\Tomcat\work\Catalina\localhost\servlet\org\apache\jsp\untitled_jsp.java:105: 意外的类型
需要: 变量
找到: 值
if(i%5=0)
    ^
1 错误 org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:332)
org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:437)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:497)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:476)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:464)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.30 logs.

解决方案 »

  1.   

    语法错误,呵呵改成if(i%5==0)
    不能一个等号。
      

  2.   

    看来是一个C的受害者,呵呵~改成if(i%5==0)就好了
      

  3.   

    哈哈?习惯了大家见效了,这个问题已经解决,我的逻辑也有错误这是问题的解决办法
     
    chrisshang(移花接木) ( )提供
     
     
       <%
    int i = 0;//记数器,size是结果集的数量
    %>
    <table>
      <tr>
        <%for(j=0;j<size;j++){%>
        <td>
          <%=rs.getString(0)%>
        <td>
        <%
        i++;
        if(i%4==0)
        {
          out.print("</tr><tr>");
        }
        }
        %>
      </tr>
    </table>
    是这个意思吗,不管数据有几条,都是每行有四列,你自己再调调布局吧,把tr的width设置成固定值.
      
     
      

  4.   

    import java.sql.*;public class HtmlResultSet {  private ResultSet rs;  public HtmlResultSet(ResultSet rs) {
        this.rs = rs;
      }  public String toString() {  // can be called at most once
        StringBuffer out = new StringBuffer();
        // Start a table to display the result set
        out.append("<TABLE>\n");    try {
          ResultSetMetaData rsmd = rs.getMetaData();      int numcols = rsmd.getColumnCount();

          // Title the table with the result set's column labels
          out.append("<TR>");
          for (int i = 1; i <= numcols; i++) {
            out.append("<TH>" + rsmd.getColumnLabel(i));
          }
          out.append("</TR>\n");      while(rs.next()) {
            out.append("<TR>"); // start a new row
            for (int i = 1; i <= numcols; i++) {
              out.append("<TD>"); // start a new data element
              Object obj = rs.getObject(i);
              if (obj != null)
                out.append(obj.toString());
              else
                out.append("&nbsp;");
            }
            out.append("</TR>\n");
          }      // End the table
          out.append("</TABLE>\n");
        }
        catch (SQLException e) {
          out.append("</TABLE><H1>ERROR:</H1> " + e.getMessage() + "\n");
        }

        return out.toString();
      }
    }