2014-04-14 2 views
0

JSP 페이지에서 양식을 제출할 때 JSP 페이지에서 서블릿으로 ArrayList을 가져 오려고합니다. 나는 다음 코드를 시도하고있다 : GetListServlet양식 제출시 JSP 페이지에서 서블릿으로 ArrayList 보내기

<form action="GetListServlet"> 
<% 
    ArrayList al=new ArrayList(); 
    al.add("Naman"); 
    al.add("Gupta"); 
    request.setAttribute("allnames", al); 
%> 
<input type="submit" value="Show List"></form> 

doGet() 방법은 다음과 같습니다 :

Pass.jsp의 코드입니다 -

protected void doGet(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException 
{ 
    ArrayList al=(ArrayList)request.getAttribute("allnames"); 
    System.out.print(al.get(0)); 
} 

하지만 NullPointerException at System.out.print(al.get(0))을 얻고있다.

서블릿 페이지에서 JSP 페이지의 arraylist를 얻는 방법을 알려줄 수 있습니까?

+0

시도해보십시오. [link] [1]. 이것은 더 나은 솔루션을 제공합니다. [1] : http://stackoverflow.com/questions/17988612/how-to-send-arraylist-from-jsp-to-servlet –

+0

나는 당신이 무엇을'request'의 일반적인 오해가 있다고 생각 입니다. 평범한 HTML에서이 문제를 해결하고 동적으로 만들려고 시도해야합니다. – mschonaker

답변

0

가장 간단한 해결책은 이 아니며은 배열을 응답으로 저장하고 서버로 다시 보냅니다. 대신 session.setAttribute("allnames", al);을 사용하여 목록에 세션을 저장하고 비슷한 방법으로 얻으십시오 : ArrayList al=(ArrayList)request.getSession().getAttribute("allnames");. 배열을 클라이언트로 보내고 다시 보낼 필요가 없습니다.

정말로 원하는 경우 배열을 숨겨진 HTML 입력 필드 목록으로 저장 한 다음 String[] al=request.getParameterValues('allnames');을 사용하여 서블릿에서 가져올 수 있습니다.

+1

죄송합니다. 아래쪽 투표를 위해,하지만 여기에 세션을 추가하는 것은 더 혼란스럽게 만들고 새로운 문제를 소개 할 것입니다. – mschonaker

+0

세션을 사용하는 것이 왜 혼란스럽고 숨겨진 양식 필드에 문제가 있으며 한 매개 변수의 모든 값을 얻는 지 자세히 설명해주십시오. 문제는 분명히 한 요청에서 다른 요청으로 데이터 목록을 전달하는 것입니다. – Kojotak

관련 문제