2 u011665766 u011665766 于 2015.06.01 22:57 提问

数据库里表的数据在JSP中显示的问题

这么写报空指针异常的错误
JSP文件

  <%
  //获取集合
List<Major> list=(List)request.getAttribute("List"); 

%> 


<div class="STYLE1" id="therecom">


<table class="gridtable">
<tr>
    <th>专业编号</th><th>专业名称</th><th>专业价格</th>
</tr>
<%
//遍历集合,获取对象信息
for(int i=0;i<list.size();i++) {
Major m=list.get(i);

%>
<tr>
    <td><%=m.getMajorId() %></td><td><%=m.getMajorName() %></td><td><%=m.getMajorPrice() %></td>
</tr>

<%} %>
</table>


servlet

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

        List<Major> list=mDao.listAll();

        request.setAttribute("list", list);

        request.getRequestDispatcher("fingmajor.jsp").forward(request, response);



    }

DaoImpl

package com.bjwl.dao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import com.bjwl.javaBean.Major;
import com.bjwl.util.DButil;


public class MajorDaoImpl implements MajorDao {


    public List<Major> listAll() {
        List<Major> list=new ArrayList<Major>(); 
        ResultSet rs=null;

        Connection con=DButil.getCon();
        Statement sta=DButil.getSta(con);


        String sql="select * from major" ;
        try {
             rs=sta.executeQuery(sql);
             while(rs.next()){
                 Major m=new Major();
                 m.setMajorId(rs.getInt(1));
                 m.setMajorName(rs.getString(2));
                 m.setMajorPrice(rs.getFloat(3));
                 list.add(m);

             }


        } catch (Exception e) {
            e.printStackTrace();

        }finally{
            DButil.close(con,sta);
        }
        return list;



}
}


求指导,谢谢!

3个回答

caozhy
caozhy   Ds   Rxr 2015.06.02 00:00

request.getAttribute("List").class.toString()输出什么类型,是不是List<Major>类型

caozhy
caozhy   Ds   Rxr 2015.06.02 00:00

request.getAttribute("List").getClass().toString()输出什么类型,是不是List<Major>类型

u011665766
u011665766 是的
接近 3 年之前 回复
caozhy
caozhy   Ds   Rxr 2015.06.02 17:11

看看错误发生的是具体哪一行。调试下。

u011665766
u011665766 说是在遍历的代码那一块77行,可是我检查了应该没问题啊for(int i=0;i<list.size();i++) { Major m=list.get(i);
接近 3 年之前 回复
u011665766
u011665766 说是在遍历的代码那一块77行,可是我检查了应该没问题啊for(int i=0;i<list.size();i++) { Major m=list.get(i);
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!