我刚刚学习java,很多地方还很糊涂,请高手不吝指教.
代码如下<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="GB2312"%>
<html>
<head>

</head>
<body>
<br>
<br>
<%!int num;%>
<jsp:useBean scope="page" id="sqlbean" class="feng.util.sql_data"></jsp:useBean>
<%try {
ResultSet rs01 = sqlbean
.executeQuery("select max(message_id) from message");
} catch (Exception e) {
out.print(e.getMessage());
}
try {
num = rs01.getInt(1);
num -= 5;
String str = "select message_name,message_content from message while message_id>="+ num + " group by message_id desc";
java.sql.ResultSet rs02 = sqlbean.executeQuery(str);%>
<table border=1 align="center" width="80%" height="10px">
<tr>
<th>
标题
</th>
<th>
内容
</th>
</tr>
<%while (rs02.next()) {%>
<tr>
<td align="center">
<%=rs02.getString(1)%>
</td>
<td>
<%=rs02.getString(2)%>
</td>
<tr>
<br>
<%}
} catch (Exception e) {
String haha = e.getMessage();
out.print(haha);
} finally {%>
<p>
请输入您要提交的留言:
<FORM name="hh" action="in.jsp" method="GET">
<P>
<INPUT name="title"></input>
<P>
<TEXTAREA name="text" rows="5" cols="80%"></TEXTAREA>
<br>
<input type="submit">
<input type="Reset">
</FORM>
<%}%>
</body>
</html>
结果给出如下错误
org.apache.jasper.JasperException: Unable to compile class for JSPAn error occurred at line: 31 in the jsp file: /putup.jsp
Generated servlet error:
rs01 cannot be resolved
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:409)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:288)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:293)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.12 logs.

解决方案 »

  1.   

    你的rs01是在一个try..catch...块中定义的,所以在另外一个try..catch...块中不可见,异常中也有提示,解决的方法是你单独吧rs1和rs2单独用一个<%%>写在页的头部,那么编译成java文件的时候这两个变量就是全局变量了。
      

  2.   

    你的rs01是在一个try..catch...块中定义的,所以在另外一个try..catch...块中不可见,异常中也有提示,解决的方法是你单独吧rs1和rs2单独用一个<%%>写在页的头部,那么编译成java文件的时候这两个变量就是全局变量了。/////
    正解!!!!!!!!!!!!!!
      

  3.   

    具体的意思是说:(请看我注释的地方)
    <%try {
    ResultSet rs01 = sqlbean        //定义了rs01 
    .executeQuery("select max(message_id) from message");
    } catch (Exception e) {
    out.print(e.getMessage());     //如果异常,rs01 实效
    }
    try {
    num = rs01.getInt(1);       //如果异常,不会执行到这,所以rs01 会编译不通过...
    给分哦~