2013-06-19 1 views
0

В принципе у меня есть эта функция, которая позволяет людям искать другого пользователя на основе их имен пользователей. Вы вводите в текстовом поле ID = «поиск» и она будет искать пользователь с этим именем пользователя/подобное именем:Исключение null null указателя servlet jsp

<form name="searchForm" action="searchUser" method="post"> 
<input type="text" id="search" name="search" placeholder="Search.." /> 
<input type="submit" id="searchButton" name="searchButton" value="Search!" onclick="searchUsers()"/> 
</form> 

Это сервлет SearchUserServlet, отображающим к действию searchUser.The статического метод searchUser (строка) возвращает arraylist пользовательских объектов. Я пытаюсь передать этот ArrayList в QuickMatchResult.jsp:

public class SearchUserServlet extends HttpServlet { 
private static final long serialVersionUID = 1L; 
    public void doPost(HttpServletRequest request, HttpServletResponse response){ 

     try { 

      String name=request.getParameter("search"); 
     ArrayList<User> userList= User.searchUser(name); 



      RequestDispatcher dispatcher=request.getRequestDispatcher("/QuickMatchResult.jsp"); 
      request.getSession().setAttribute("userList",userList); 
      dispatcher.forward(request, response); 
     } catch (ServletException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     }catch(Exception e){ 
      e.printStackTrace(); 
     } 
    } 

Это QuickMatchResult.jsp, где он направляется. Я пытаюсь показать все имена пользователей объектов пользователей в ArrayList:

<table id="searchResults"> 
<%  ArrayList<User> userList= new ArrayList<User>(); 
userList=(ArrayList<User>)request.getAttribute("userList"); 
for (int i=0; i<userList.size();i++){ 
User user=userList.get(i); 
%> 
<tr> 
<td><%=user.getUserName()%></td>  
</tr> 
<% 

} 
%> 
</table> 

Однако, когда я пытаюсь запустить это, я получаю исключение нулевого указателя. Любая идея почему?

+1

чека, если USERLIST из запроса является недействительным – Makky

+0

Прочитайте список пользователей в JSP от сессии вместо запроса, как вы настраиваете список пользователей в сессии – Vasu

ответ

0

Вы установили свой атрибут в сеансе, а не в запросе. Используйте

request.setAttribute("userList", userList); 

или если вы хотите использовать сеанс, а затем получить атрибут сеанса в JSP.

session.getAttribute("userList"); 

Мы получаем NullPointerException, когда мы пытаемся вызвать метод ссылки на объект, который не относится к объекту. т.е. null.

В вашем случае, вы пытаетесь получить атрибут с именем userList из request объекта, но нет какой-либо атрибут, как, например, в request. Если getAttribute не находит атрибут, он возвращает null

+0

Спасибо спариваться! Сначала у меня это было так, но это не сработало. – Blaiz

+0

Я думаю, что он устанавливает его в самой сессии – zerocool

+0

@zerocool вы можете сообщить подробности о проблеме? на какой строке вы получаете NullPointerException и какую переменную? Мне нужно больше информации –

0

Вы помещаете объект userList в объект sesion и пытаетесь извлечь его из объекта запроса. Получить этот список из сессии не из request.Below должен помочь

userList=(ArrayList<User>)session.getAttribute("userList"); 

 Смежные вопросы

  • Нет связанных вопросов^_^