NullPointerException问题

yangliweng1 2010-06-29 01:43:14
exception

org.apache.jasper.JasperException: An exception occurred processing JSP page /deleteSong.jsp at line 39

36: </tr>
37: <%
38: List songList =(List)(request.getAttribute("songList"));
39: out.println(songList.size());
40: for(int i=0;i<songList.size();i++)
41: {
42: SongDTO song=new SongDTO();


这是怎么回事?我明明数据库中有数据,而且用DAO都获取了
DAO:
public static List findAllSongs()

{
List songList=new ArrayList();
Connection con = null;
Statement stat=null;
ResultSet rs=null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:music","sa","");
stat=con.createStatement();
String queryString="select * from song";
rs=stat.executeQuery(queryString);
while(rs.next())
{
SongDTO song=new SongDTO();
song.setSgID(rs.getString("sgID"));
song.setSgName(rs.getString("sgName"));
song.setSingerID(rs.getString("singerID"));
song.setStID(rs.getString("stID"));
song.setSlID(rs.getString("slID"));
songList.add(song);
}

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return songList;

}
以下代码是:
<tr>
<form action="servlet/HandleDeleteSong" method="post">
<td><%=song.getSgID()%></td>
<td><%=song.getSgName() %></td>
<td><%=song.getSingerID()%></td>
<td><%=song.getStID() %></td>
<td><%=song.getSlID()%></td>
<td><a href="(deleteSongById)?sgID=<%=song.getSgID() %>">删除</a></td>
</form>
</tr>
<%
}

%>
...全文
111 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lee80705041 2010-06-29
  • 打赏
  • 举报
回复
楼主Debug 一下
看看返回的songList 是不是null
yangliweng1 2010-06-29
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 soli11722984 的回复:]
无视吧,等你知道什么叫泛型再回头看
[/Quote]
List<SongDTO> songList = new ArrayList<SongDTO>();

songList =(List<SongDTO>)(request.getAttribute("songList"));
我改了啊
可是还是有问题的
类型安全:未经检查的从 Object 到 List 的强制类型转换
soli11722984 2010-06-29
  • 打赏
  • 举报
回复
无视吧,等你知道什么叫泛型再回头看
yangliweng1 2010-06-29
  • 打赏
  • 举报
回复
List songList =(List)(request.getAttribute("songList"));
提示LIST为原始类型,要List<E>引用参数化,什么意思?
并说这是个断点
LAMP_PHP2007 2010-06-29
  • 打赏
  • 举报
回复
你在servlet中设置的存储放在了session中了,在页面上又有request取.
yangliweng1 2010-06-29
  • 打赏
  • 举报
回复
我设置了啊 !
yangliweng1 2010-06-29
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zml6308 的回复:]
引用 4 楼 soli11722984 的回复:
request.getAttribute("songList")
没有一个叫songList的属性,所以返回null


正解!
[/Quote]


SongDAO song=new SongDAO();
songList=SongDAO.findAllSongs();

session.setAttribute("songList",songList);

哦不是设置了吗?怎么说没有呢????
zml6308 2010-06-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 soli11722984 的回复:]
request.getAttribute("songList")
没有一个叫songList的属性,所以返回null
[/Quote]

正解!
yangliweng1 2010-06-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 epiphone 的回复:]
你后台是session.setAttribute("songList",songList);
前台怎么是request.getAttribute呢?
前台改成
List songList =(List)request.getSession().getAttribute("songList");
[/Quote]
突然跳到调试窗口了,而且总是正在连接。。。。。。
Epiphone 2010-06-29
  • 打赏
  • 举报
回复
你后台是session.setAttribute("songList",songList);
前台怎么是request.getAttribute呢?
前台改成
List songList =(List)request.getSession().getAttribute("songList");
soli11722984 2010-06-29
  • 打赏
  • 举报
回复
request.getAttribute("songList")
没有一个叫songList的属性,所以返回null
soli11722984 2010-06-29
  • 打赏
  • 举报
回复
request.getAttribute("songList")
没有一个叫sonList的属性,所以返回null
yangliweng1 2010-06-29
  • 打赏
  • 举报
回复
数据库有主外键约束,不知是否为这个原因???
yangliweng1 2010-06-29
  • 打赏
  • 举报
回复
HandleDeletesong.java

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html;charset=gb2312");
List songList=new ArrayList();
SongDAO song=new SongDAO();
songList=SongDAO.findAllSongs();

session.setAttribute("songList",songList);
RequestDispatcher rd=request.getRequestDispatcher("deleteSong.jsp");
rd.forward(request,response);
}

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧