读书人

jsp hash地图 get 异常请高手帮助

发布时间: 2012-08-10 12:19:33 作者: rapoo

jsp hashmap get 错误,请高手帮助
不知道为什么会报错:root causejava.lang.NullPointerException

org.apache.jsp.liuyan2_jsp._jspService(liuyan2_jsp.java:100)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)




页面代码如下:<link rel="stylesheet" type="text/css" href="mycss2.css" />

<body>

<% int page_count = 1;

int row = 5;

int sum_page = 1;

Messagebean mbean = new Messagebean();

int sum_row = mbean.getallcount();

System.out.println("sum_row"+sum_row);

System.out.println(page_count);

HashMap map = mbean.getallmessage(page_count, row);

%>

<div id="main">

<div id="lcol">

<div class="lbox"><div class="h2">你好,欢迎登陆</div>

<div class="lboxpic"><img src="images/center_onepiece.jpg"></div>

<div class="lboxpic"><img src="images/center_onepiece.jpg" /></div>

<div class="lboxpic"><img src="images/center_onepiece.jpg"></div>

<div class="lboxpic"><img src="images/center_onepiece.jpg"></div>

</div>

</div>

<div id="rcol">

<table width="90%" border="0" cellpadding="0" cellspacing="0">

<%

List list = (List) map.get("all");

System.out.println("wangkang4");

for (int i=0;i<list.size();i++)

{System.out.println(list.get(i));

}

if (list.size() < 1) {

%>

<p align="center">目前没有留言 </p>

<%

}

for (int i = 0; i < list.size(); i++) {

Message me = (Message) list.get(i);

%>

<tr>

<td class="context">

<table width="100%" border="0" cellpadding="0"> <tr> <td><strong><%=me.getname()%></strong></td></tr>

<tr>

<td><strong><%=me.getcontext()%></strong></td>

</tr> </table> </td> </tr>

<% } %> </table> </div> </div>

</body>


package com.jsp.bean;

import com.jsp.util.*;

import java.text.SimpleDateFormat;

public class Messagebean {

Connection con = null;

public boolean Insertmessage(Message message)

{略……

}

public HashMap getallmessage(int page_count,int row)

{

HashMap map = new HashMap();

List list = new ArrayList();

con=DataBaseConnection.getConnection();

String sql="select * from message order by id desc limit "+(page_count-1)*row+","+row;

Statement st=null;

ResultSet rs = null;

System.out.println("wangkang");

try {

System.out.println("wangkang3");

st=con.createStatement();

rs=st.executeQuery(sql);

while(rs.next())



{

DateFormat dataformat= new SimpleDateFormat();

Message message = new Message();

message.setid(rs.getInt("id"));

System.out.println(message.getid());

message.setname(rs.getString("name"));

System.out.println(message.getname());

message.setmotify(rs.getString("motif"));

System.out.println(message.getmotify());

message.setcontext(rs.getString("context"));

System.out.println(message.getcontext());

list.add(message);

}

System.out.println("wangkang2");

rs.close();

st.close();} catch (SQLException e) {

e.printStackTrace();

}


return map;

}

public int getallcount()

{

int count=0;

con=DataBaseConnection.getConnection();

String sql="select count(id) from message";

try {

PreparedStatement pst= con.prepareStatement(sql);

ResultSet rst= pst.executeQuery();

if(rst.next())

{

count=rst.getInt(1);

}

rst.close();

pst.close();

} catch (SQLException e) {

e.printStackTrace();

} return count;

}


起先是
List list = (List) map.get("all");
老是老错,我怀疑是这句话搞错了,但真心不明白是怎么错的,这里设置了个hashmap的列表list来接受servlet里面传来的map,但是我还是想不明白是哪里搞错的





[解决办法]
前面的mapnull了把
[解决办法]
Messagebean中的getallmessage定义了返回的map和准备放入map中的list,但是你没把list真正放入map中,所以,在页面上List list = (List) map.get("all")这样使用的时候,list为null,然后你用了for循环,list.size,于是NullPointerException

读书人网 >Java Web开发

热点推荐