可以这样子处理select语句的搜查结果吗,是个数集.MessageA类里是些set和get的方法.下面这个语段在另一个类,然后在一个JSP页面调用C.
不太理解对象msg为什么可以放在add里rs = stmt.executeQuery(sql);
Collection c = new ArrayList();
MessageA msg = null;
while (rs.next()) {
msg = new MessageA();
msg.seta_id(rs.getInt("A_ID"));
msg.seta_title(rs.getString("A_TITLE"));
msg.seta_content(rs.getString("A_CONTENT"));
msg.setAuthor(rs.getString("AUTHOR"));
msg.setCompose_date(rs.getDate("COMPOSE_DATE"));
c.add(msg);
msg = null;
}
return c;
不太理解对象msg为什么可以放在add里rs = stmt.executeQuery(sql);
Collection c = new ArrayList();
MessageA msg = null;
while (rs.next()) {
msg = new MessageA();
msg.seta_id(rs.getInt("A_ID"));
msg.seta_title(rs.getString("A_TITLE"));
msg.seta_content(rs.getString("A_CONTENT"));
msg.setAuthor(rs.getString("AUTHOR"));
msg.setCompose_date(rs.getDate("COMPOSE_DATE"));
c.add(msg);
msg = null;
}
return c;
我运行后C总是空的
getallAticle mgr = new getallAticle();
Collection c = null;
if (page == null) {
c = mgr.getAllMessages(pagesize, 1,usernameS);
}
request.setAttribute("totalPageNum",new Integer(totalPageNum));
request.setAttribute("c", c);然后转到第二个JSP页面,就是要显示查询结果的页面
<%if (request.getAttribute("c") == null) {%>
<tr>
<td width="" 75%"" colspan=5 bgcolor="#FCFCFC" align=center>还没有任何留言。</td>
</tr>
<%} else {
Collection c = (Collection) request.getAttribute("c");
if (c == null) {%>
<tr>
<td width="" 75%"" colspan=5 bgcolor="#FCFCFC" align=center>还shi 没有任何留言。</td>
</tr>
<%} else {
int totalPageNum = ((Integer) (request.getAttribute("totalPageNum"))).intValue();
int currentPage = 1;
if (request.getParameter("page") != null) {
currentPage = Integer.parseInt(request.getParameter("page"));
}
Iterator iterator = c.iterator();
while (iterator.hasNext()) {
MessageA msg = (MessageA) iterator.next();%>但不管怎么运行,结果都"还没有任何留言"也就是说在第一个判断已经得出C==NULL
while(it.hasNext()) {
MessageA msg = (MessageA)it.next();
msg.getXXX();
}
这用取试一下,不然就是你的库里没数据
<%if (request.getAttribute("c") == null) {%>
<tr>
<td width="" 75%"" colspan=5 bgcolor="#FCFCFC" align=center>还没有任何留言。</td>
</tr>
他都是运行到这步,request.getAttribute("c") == null.数据库没问题啊我把数据库连接贴出来大家帮我看看,数据库连接也设置在getAllMessage类
public String url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=D:/java/myblog.mdb";
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}
catch(java.lang.ClassNotFoundException e) {
System.err.println("mydb(): " + e.getMessage());
}
Statement stmt = null;
ResultSet rs = null;
try {
Connection conn = DriverManager.getConnection(url);
stmt = conn.createStatement();
// sql语句:
String sql = "select * from Article where AUTHOR='autho'( order by A_ID desc limit "
+ (page - 1) * pagesize + "," + pagesize;
rs = stmt.executeQuery(sql);查询的author是在另一个页面调用这个方法时传过来的变量
Iterator it = c.iterator();
while(it.hasNext()) {
MessageA ms = (MessageA)it.next();
ms.geta_id();
out.println(ms);
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
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)
root cause java.lang.NullPointerException
org.apache.jsp.searchblog_jsp._jspService(searchblog_jsp.java:69)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
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)