为什么我的jsp对类似这样的代码都报错? 首先这是java代码和html代码的混合编程另外这种方式正常的情况下是不会产生错误的错误的原因看来是你的java代码出错!好好检查你的java代码! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在去数据之前应该先调用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><%}%> 谢谢大家,不过,我改了另外的方式写,其实就是想实现分页显示,看了以前的一些帖子里的程序照着写的,还是报错。程序如下:请大家帮忙想想,我已经调了一天都没弄好。<%@ 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 int PageCount=0;把PageCount在定义的时候就初始化试试 [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应该可以的 JSP读取ORACLE数据乱码问题 java如何将excel文件导入到access中 jsp+servlet+javabean程序用户登录报错 jsp输出excel 紧急求助:web服务器无法解析jsp文件 请问有什么办法让showModalDialog打开的对话框后退吗? ActionForm 的属性复制给ValueObject 关于jpivot的用法 [异常]在Tiles中我用Definition in jsp page方式时,用extends时异常,同志们帮看看,谢了! 深圳工资大调查:) 各位高手一定要帮小妹忙啊(关于怎样提交两个表单的问题) 送分问题
程序改为:
<%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>
<%}%>
程序如下:请大家帮忙想想,我已经调了一天都没弄好。
<%@ 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
很显然你的pageCount没有初始化在声明的地方初始化为0应该可以的