2017-09-14 38 views
0

我正在開發一個使用jsp和servlet的web應用程序,我想從我的數據庫中顯示所有記錄以及表中的記錄數。如何解決JSP中的NullPointerException

我創建了一個DAO,在其中我執行了查詢,他們正確地返回了數據,並將它放在servlet中的會話中,名稱分別爲sessaoListaMotoristasTodostotalMotorista

但通過從會話檢索的值和分配的變量時,該值不分配,被叫變量是List ListMotoristasInteger totalRegistros給人一種顯示java.lang.NullPointerException

protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException { 
    MotoristasDAO dao= new MotoristasDAO(); 
    MotoristasDAO dao2= new MotoristasDAO(); 
    String pesquisa=request.getParameter("pesquisa"); 
    try { 
     if(pesquisa==null){ 
      pesquisa=""; 
     } 
    Integer totalMotorista=dao.totalRegistros(pesquisa); 
    request.setAttribute("totalMotoristas", totalMotorista); 
    List listaMotoristas2=dao2.mostrarMotoristas(); 
    request.setAttribute("sessaoListaMotoristasTodos", listaMotoristas2); 
    RequestDispatcher rd= request.getRequestDispatcher("/listaMotoristas2.jsp"); 
    rd.forward(request, response); 
    } catch (Exception e) { 
    JOptionPane.showMessageDialog(null, "Erro na servelet"+e); 
    } 
} 

JSP:

<% 
List listaMotoristas=(List) request.getAttribute("sessaoListaMotoristasTodos"); 
Integer totalRegistros= (Integer) request.getAttribute("totalMotorista"); 
int totalPaginas=totalRegistros/limite; 
if(totalRegistros%limite!=0){ 
    totalPaginas++; 
}else{ 
    totalPaginas=0; 
} 
%> 
+0

在這行代碼了request.setAttribute(「sessaoListaMotoristasTodos」,dao2)的;您將dao2設置爲值,但在jsp中以request.getAttribute(「sessaoListaMotoristasTodos」)的形式檢索它;它不會返回給你一個列表。它會返回dao2,從這個u需要獲取列表,否則其他選項設置如下request.setAttribute(「sessaoListaMotoristasTodos」,listaMotoristas2);而在jsp中,您可以像檢索列表一樣檢索列表 –

+0

另外,您並未在會話作用域中設置變量,而是將它們設置爲請求範圍。但在你的問題,你說你設置變量在會話範圍內,這是錯誤的 –

+0

Avinash Readdy當我對變量的請求範圍變量變量沒有收到它的值爲空 – Felipe

回答

0
MotoristasDAO dao2= new MotoristasDAO(); 
List listaMotoristas2=dao2.mostrarMotoristas(); 

根據你的代碼,你正在做的牛逼他

request.setAttribute("sessaoListaMotoristasTodos", dao2); 

但是,你應該這樣做

request.setAttribute("sessaoListaMotoristasTodos", listaMotoristas2); 

或本

request.setAttribute("sessaoListaMotoristasTodos", dao2.mostrarMotoristas()); 

你應該設置列表「listaMotoristas2」的要求,而不是「dao2」

現在在JSP代碼如下所示

List listaMotoristas=(List) request.getAttribute("sessaoListaMotoristasTodos"); 

這將不會返回一個列表將返回dao2

+0

我按照您的建議進行了更改,但當我在變量中設置請求範圍時,繼續發生相同的錯誤 – Felipe

+0

,變量未收到它所得到的值 – Felipe

相關問題