2012-06-03 29 views
18

Đây là lỗi tôi nhận được,Không thể đúc từ Object để boolean

org.apache.jasper.JasperException: Unable to compile class for JSP: 

    An error occurred at line: 13 in the jsp file: /index.jsp 
    Cannot cast from Object to boolean 

Đây là mã của tôi:

khiển Servlet

if(authentication.verifyCredentials(request.getParameter("username"), 
    request.getParameter("password"))) 
{ 
     session.setAttribute("username", request.getParameter("username")); 
     session.setAttribute("loggedIn", true); 
     dispatcher.forward(request, response); 
} 

Tôi cũng đã cố gắng này,

session.setAttribute("loggedIn", new Boolean(true)); 

JSP

<% 
    if(session.getAttribute("loggedIn") != null) 
    { 
     if(((boolean)session.getAttribute("loggedIn"))) 
     { 
      response.sendRedirect("Controller"); 
     } 
    } 
%> 

Có, tôi nghiên cứu và cũng chứng kiến ​​sự stackoverflow trước post; tuy nhiên tôi vẫn không thể giải quyết vấn đề của mình. Vui lòng trợ giúp.

Trả lời

21

Hãy thử đúc nó để Boolean (nullable) thay vì boolean trong JSP:

if(((Boolean)session.getAttribute("loggedIn"))) 
{ 
    response.sendRedirect("Controller"); 
} 
+6

Hãy nhớ rằng, tất cả các loại chữ thường đều được xây dựng sẵn trong các kiểu nguyên thủy không mở rộng 'Đối tượng'. Nếu bạn muốn sử dụng chúng với các tham chiếu, bạn cần sử dụng các phiên bản chữ hoa, các kiểu "được đóng hộp". – Wormbo

+0

Cảm ơn bạn đã có mẹo tiện dụng! Trở đi tôi không thể quên 'Boolean' :) – mumair

8

thử với

if(((Boolean)session.getAttribute("loggedIn"))) 

thay vì:

if(((boolean)session.getAttribute("loggedIn"))) 

thuộc tính phải được thực hiện như Boolean, không phải là nguyên thủy loại

Các vấn đề liên quan