首先这是java代码和html代码的混合编程
另外这种方式正常的情况下是不会产生错误的
错误的原因看来是你的java代码出错!
好好检查你的java代码!

解决方案 »

  1.   

    在去数据之前应该先调用sqlRst.next();
    程序改为:
    <%while(sqlRst.next()){%>
    <tr>
      <td><%=sqlRst.getString("name")%></td>
      <td><%=sqlRst.getString("writer")%></td>
       <td><%=sqlRst.getString("ndate")%></td>
       <td><%=sqlRst.getString("press")%></td>
       <td><%=sqlRst.getString("price")%></td>
    </tr>
    <%}%>
      

  2.   

    谢谢大家,不过,我改了另外的方式写,其实就是想实现分页显示,看了以前的一些帖子里的程序照着写的,还是报错。
    程序如下:请大家帮忙想想,我已经调了一天都没弄好。
    <%@ page contentType="text/html; charset=GBK" %><%@ page language="java" import="java.sql.*"%>
    <%@ page import="java.io.*"%>
    <%@ page import="java.util.*"%>
    <%!
    public String getStr(String str)
    {
      try
    {
      String temp_p=str;
      byte[ ] temp_t=temp_p.getBytes("GBK");
      String temp=new String(temp_t);
      return temp;
    }
    catch(Exception e)
    {
           e.printStackTrace();
    }
    return "null";
    }
    %>
    <html><head>
    <title>选择查询</title>
    </head>
    <body><table border="0" width="100%">
      <tr>
        <td width="100%">
          <table border="0" width="107%" height="86" bgcolor="#006699">
            <tr>
              <td width="21%" height="82" bgcolor="#006699" bordercolor="#006699" bordercolorlight="#006699" bordercolordark="#006699"><img border="0" src="index.1.gif" width="130" height="71"></td>
              <td width="43%" height="82" bgcolor="#006699">
                <table border="0" width="100%" height="61">
                  <tr>
                    <td width="100%" height="35" align="center"><font face="文鼎中隶简" size="4" color="#FFFFFF"><b>经济科学出版社</b></font></td>
                  </tr>
                  <tr>
                    <td width="100%" height="18" align="center"><font face="文鼎中隶简" size="3" color="#FFFFFF"><b>Economic
                      Science</b></font></td>
                  </tr>
                </table>
              </td>
              <td width="42%" height="82" bgcolor="#006699"><img border="0" src="index.2.jpg" width="386" height="80"></td>
            </tr>
          </table>
        </td>
      </tr>
    </table>
    <table border="0" width="100%" height="38">
      <tr>
        <td width="100%" height="34">
          <form method="POST" action="accord.jsp">
            <!--webbot bot="SaveResults"
            U-File="D:\Tomcat 4.1\webapps\publish\jsp\_private\form_results.txt"
            S-Format="TEXT/CSV" S-Label-Fields="TRUE" -->
            <p style="margin-top: 0; margin-bottom: 0">书籍查询:<select size="1" name="accord">
    <option value="0" selected>查询方式</option>
              <option value="1">主题词</option>
              <option value="2">出版社</option>
              <option value="3">专家名</option>
            </select><input type="text" name="name1" size="16"><input type="submit" value="go" name="B1"></p>
          </form>
        </td>
      </tr>
    </table>
    <table border="1" width="100%" height="227" bordercolor="#FFFFFF">
      <tr>
        <td width="10%" rowspan="8" height="223">
          <table border="0" width="100%">
            <tr>
              <td width="100%">书籍分类查询</td>
            </tr>
            <tr>
              <td width="100%"></td>
            </tr>
            <tr>
              <td width="100%"></td>
            </tr>
            <tr>
              <td width="100%"></td>
            </tr>
            <tr>
              <td width="100%"></td>
            </tr>
            <tr>
              <td width="100%"></td>
            </tr>
            <tr>
              <td width="100%"></td>
            </tr>
            <tr>
              <td width="100%"></td>
            </tr>
          </table>
        <td width="36%" rowspan="8" height="223">
          <table border="0" width="100%" bgcolor="#D8E1E8">
            <tr bgcolor="#D8E1E8">
              <td width="40%">书名</td>
              <td width="20%">作者</td>
              <!--<td width="9%">译者</td>-->
              <td width="12%">出版日期</td>
              <td width="8%">价格</td>
              <td width="30%">出版社</td>
            </tr><%
    int PageSize=10; //每一页显示的记录数
    int ShowPage; //当前显示的页面
    int RowCount; //总的记录数
    int PageCount; //总的页数
    java.lang.String strPage;
    int i;
    strPage = request.getParameter("page");
    if(strPage==null){//表明在QueryString中没有page这一个参数,此时显示第一页数据
    ShowPage = 1;
    }
    else{//将字符串转换成整型
    ShowPage = java.lang.Integer.parseInt(strPage);
    if(ShowPage<1) ShowPage = 1;
    }
    String sql=null;
    String name1,accord;
    int id;
    name1= new String(request.getParameter("name1").getBytes("8859_1"),"GBK");
    accord=new String(request.getParameter("accord").getBytes("8859_1"),"GBK");
    id=Integer.parseInt(accord);
    if (id==0){
    out.println("<tr height='35',bgcolor='#ffffff'>");
    out.println("<td>");
    out.println("对不起,请选择查询方式");
    out.println("</td>");
    out.println("</tr>");
    }
    else if (name1.equals("")){
    out.println("<tr height='35',bgcolor='#ffffff'>");
    out.println("<td>");
    out.println("对不起,查询关键字不能空!");
    out.println("</td>");
    out.println("</tr>");
    }
    if (id==1){
    sql="SELECT * FROM press.bookinf where ";
    sql=sql+"name like '%" +  name1 + "%'";
    }
    if (id==2){
    sql="SELECT * FROM press.bookinf where ";
    sql=sql+"press like '%" +  name1 + "%'";
    }
    if (id==3)
    out.println("暂时不要选择此项查询");
    if (sql!=null){
    ResultSet rs=null;
         String DBDriver = "oracle.jdbc.driver.OracleDriver";
          String ConnStr = "jdbc:oracle:thin:@192.168.18.16:1521:press";
          Connection con = null;
          String username = "press";
          String password = "press";      Class.forName(DBDriver).newInstance();
      con = DriverManager.getConnection( ConnStr, username, password );
      try{
      Statement st= con.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
    //Statement st=con.createStatement();
         rs=st.executeQuery(sql);rs.last();
    RowCount=rs.getRow();
    PageCount=(RowCount+PageSize-1)/PageSize; 
    //调整待显示的页码
    if(ShowPage>PageCount) ShowPage = PageCount;
    if(PageCount>0)
    //将记录指针定位到待显示页的第一条记录上
    rs.absolute((ShowPage-1) * PageSize + 1);
    //显示数据i = 0;
    String book_name,writer,translator,date,price,publish;
    while(i<PageSize && !rs.isAfterLast()){rs.next();
    book_name=getStr(rs.getString("name"));
    writer=getStr(rs.getString("writer"));
    translator=rs.getString("translator");
    date=rs.getString("ndate");
    publish=rs.getString("press");
    price=rs.getString("price");
    out.println("<td width='40%'><font size=2>"+book_name+"</font></td>");
          out.println("<td width='20%'><font size=2>"+writer+"</font></td>");
          //out.println("<td width='%'><font size=2>"+translator+"</font></td>");
          out.println("<td width='12%'><font size=2>"+date+"</font></td>");
          out.println("<td width='8%'><font size=2>"+price+"</font></td>");
          out.println("<td width='30%'><font size=2>"+publish+"</font></td>");
           out.println("</tr>");
    i++;
    }   }
    catch(SQLException ex){
      System.out.println(ex.toString());
      }
    }
    %>
    </td>
    </table>
    <%
    out.println("第"+ShowPage+"页");
    out.println("共"+PageCount+"页");
    if (ShowPage<PageCount)
    out.println("<td><a href=result.jsp?page="+ShowPage+">"+"下一页"+"</a></td>");
    if (ShowPage>1)
    out.println("<td><a href=result.jsp?page="+ShowPage+">"+"上一页"+"</a></td>");
    %>
    </table>
    </html>报错如下:
    org.apache.jasper.JasperException: Unable to compile class for JSPAn error occurred at line: -1 in the jsp file: nullGenerated servlet error:
        [javac] Since fork is true, ignoring compiler setting.
        [javac] Compiling 1 source file
        [javac] Since fork is true, ignoring compiler setting.
        [javac] C:\Program Files\Apache Group\Tomcat 4.1\work\Standalone\192.168.18.16\publish\jsp\result_jsp.java:287: variable PageCount might not have been initialized
        [javac] out.println("??+PageCount+"椤?);
        [javac]                 ^
        [javac] 1 error
      

  3.   

    int PageCount=0;把PageCount在定义的时候就初始化试试
      

  4.   

    [javac] C:\Program Files\Apache Group\Tomcat 4.1\work\Standalone\192.168.18.16\publish\jsp\result_jsp.java:287: variable PageCount might not have been initialized
        很显然你的pageCount没有初始化在声明的地方初始化为0应该可以的