2012-11-02 13 views
1

중요한 질문이 있지만 영어를 유감스럽게 생각하며 미안하지만, 기본 지식 만 있습니다. 그럼 내 문제는 JSP 페이지를 서블릿에서 ArrayList에 전달 오류가 I :서블릿에서 JSP로 ArrayList를 전달하는 중 오류가 발생했습니다.

<% ArrayList<Usuario> u= (ArrayList<Usuario>)session.getAttribute("listado");%> 
<table align="left" cellpadding="0" cellspacing="1"> 
    <tr bgcolor="blue"> 
     <td>Usuario</td><td>Nombre</td> 
     <td>Apellido</td><td>Clave</td> 
    </tr> 
<% for(int i=0;i<u.size();i++){ %> 
<% Usuario usuario = u.get(i); %> 
<tr> 
<td> <%= usuario.getUsuario() %></td> 
<td> <%= usuario.getNombre() %></td> 
<td> <%= usuario.getApellido() %></td> 
<td> <%= usuario.getClave() %></td> 
</tr> 
<%} %> 


</table> 

나는이 일을 해요 방법하지만 난에 오류가 발생 : 나는 '무엇

<% for(int i=0;i<u.size();i++){ %> 

잘못하고있는거야? 또한 내 서블릿 메서드는 다음과 같습니다 :

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    RequestDispatcher rd; 

    try { 
     Connection cn = MySQLConnection.obtenerConexion(); 
     String sql = "select * from tb_usuario"; 
     PreparedStatement ps = cn.prepareStatement(sql); 
     ResultSet rs = ps.executeQuery(); 
     ArrayList<Usuario> listado = new ArrayList<Usuario>(); 
     while (rs.next()){ 
      Usuario usu = new Usuario(rs.getString(1),rs.getString(2),rs.getString(3),rs.getString(4)); 
      listado.add(usu); 
     } 
     request.setAttribute("listado", listado); 
     request.getRequestDispatcher("/listado.jsp"); 
    } catch (SQLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

당신이 나를 도울 수 있기를 바랍니다!

답변

0

scriptlets은 ajsp 페이지에서 사용하는 것이 바람직하지 않으므로 대신 JSTL tags을 사용하십시오. c-foreach tag을 사용하여 jsp 페이지에서 arrayList를 반복 처리하십시오. 요청 범위의 속성을 설정하고 jsp의 세션 범위에서 속성을 가져 오려고합니다. C-의 foreach 태그

1

당신은 당신의 JSP에서 스크립틀릿을 사용하지 않아야을 설명

heres the link. JSP에서 EL과 태그를 사용해야합니다.

따라서 문제없는 session로부터 입수하면서

${listado} 
+0

나는 그것을 사용하는 방법을 안다. 그러나 나는 scriptlet yuck으로 그것을 할 필요가있다. –

0

request 객체의 변수를 설정한다.

당신은 아래 doPost의 속성을 설정하는 "

request.setAttribute("listado", listado); 

당신은 아래로 JSP의 속성을 검색하는"

<% ArrayList<Usuario> u= (ArrayList<Usuario>)session.getAttribute("listado");%> 

에 동일한 범위 session 또는 request을 사용하십시오 두 곳 다.

+0

네, 죄송합니다, 다른 코드를 게시했습니다, 지금은 요청으로 고쳐졌지만, 같은 오류. –

+0

@ JosueP.Corzo : 어떻게 고치셨습니까? 지금'session'을 사용하고 있습니까? '% ArrayList u = (ArrayList ) 세션 뒤에'u'와'u.size()'를 출력 할 수 있습니까?getAttribute ("listado"); %>'그리고 당신은 무엇을 얻고 있습니까? –

0

당신은 범위를

request.setAttribute("listado", listado); 

를 요청의 값을 설정하지만 세션 범위에 액세스하려고합니다. 이 때문에

session.getAttribute("listado"); 

U 수도 요청 범위에 액세스 할 수

u.size()... 

시도에서 널 포인터 예외가

request.getAttribute("xxxxxx") 

시도는이다 whihc JSP 내부의 자바 코드를 추가 피하기 위해 나쁜 습관. 대신 EL과 JSTL을 사용하십시오. 당신도 코드 내부의 주조 부분에 할 수 있습니다 ..

관련 문제