JSP调用JAVABEAN问题
摸JAVA没多久
<jsp:useBean id="PostsManager" class="com.bbs.struts.bean.PostsManager" scope="session" />
<tr bgcolor=lawngreen>
<%
java.sql.ResultSet rs=(java.sql.ResultSet)request.getAttribute("author");
while(rs.next()){
String authorname=rs.getString("AUTHOR");
//String username=rs.getString("username");
//String title=rs.getString("title");
%>
<td><%=authorname%></td>
</tr>
<% } %>
JSP上的一段代码,目的是拿数据库的一个表内的所有数据到JSP上 然后报错是rs.next()
空指针servlet部分代码
PostsManager postsmanager=new PostsManager();
request.setAttribute("author", postsmanager.findauthor());
PostsManager部分代码
package com.bbs.struts.bean;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.bbs.struts.db.DB_conn;
import com.bbs.struts.form.LoginForm;
import com.bbs.struts.form.Posts_writeForm;
public class PostsManager {
DB_conn db = new DB_conn();
public ResultSet findauthor(){
String sql="select * from posts_table";
ResultSet rs=db.getQuery(sql);
return rs;
}
}
数据库连接的部分代码
public ResultSet getQuery(String sql){
Connection conn=getCon();
Statement stt=null;
ResultSet rs = null;
try{
stt=conn.createStatement();
rs=stt.executeQuery(sql);
}catch(Exception e){
e.printStackTrace();
}
return rs;
}
大家帮我看看哪里错了 看了好久不晓得
------解决方案--------------------你的servlet到jsp是请求转发还是重定向,重定向的话会重新发送request,所以之前设的attribute会丢失。
------解决方案--------------------request.setAttribute()改成session.setAttribute(),然后jsp取值时也要改成相对应的即可
------解决方案--------------------servlet部分代码
PostsManager postsmanager=new PostsManager();
request.setAttribute("author", postsmanager.findauthor());
你这里输出下看看有没有结果postsmanager.findauthor();
也就是这样
PostsManager postsmanager=new PostsManager();
System.out.println(postsmanager.findauthor());
request.setAttribute("author", postsmanager.findauthor());
先判断第一步你的值有没有获取到 有输出结果的话那就按楼上的方法看下 设置为session