1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

FOR em JSP usando MVC e DAO

Boa tarde.

Srs.,

Implementei essa estrutura, que tem o objetivo de listar o resultados do atributo materialList "quebrando o" pelo FOR e distribuindo ao Bean Material e imprimi-los via getters. Só que já analisei e não pego o erro.

HTTP Status 500 - org.apache.jasper.JasperException: An exception occurred processing JSP page /mostrarMateriaisCads.jsp at line 27
type Exception report
message org.apache.jasper.JasperException: An exception occurred processing JSP page /mostrarMateriaisCads.jsp at line 27
description The server encountered an internal error that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: org.apache.jasper.JasperException: An exception occurred processing JSP page /mostrarMateriaisCads.jsp at line 27

24:     List materialList = ( List )request.getAttribute( "materialList" );
25:     for( Iterator i= materialList.iterator(); i.hasNext();)
26:     {
27:         Material mt = ( Material )i.next( );
28: %>
29:                     <tr>
30:

Segue o trecho do código.Agradeço antecipadamente.

PÁGINA JSP:

<body>
<table border="1" cellpadding="2" cellspacing="2">
<tr>
<th>Código - Atualizar</th>
<th>Disciplina</th>
<th>Faculdade</th>
<th>Tema</th>
<th>Data</th>
<th>Resumo</th>
<th>Excluir Postagem</th>
</tr>
<%
    List materialList = ( List )request.getAttribute( "materialList" );
    for( Iterator i= materialList.iterator(); i.hasNext();)
    {
        Material mt = ( Material )i.next( );
%>
<tr>
<td>
<a href="MaterialControleServlet?cmd=atu&id=<%=mt.getId()%>"><%=mt.getId()%></a>
</td>
<td><%=mt.getDisciplina()%></td>
<td><%=mt.getFaculdade()%></td>
<td><%=mt.getTema()%></td>
<td><%=mt.getData()%></td>
<td><%=mt.getResumo() %></td>
<td>
<a href="MaterialControleServlet?cmd=exc&id=<%=mt.getId()%>">Excluir</a>
</td>
</tr>
<%
}// fim do for
%>                    

</table>

TRECHO RESPONSÁVEL DO SERVLET

protected void service(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
        String cmd = request.getParameter( "cmd" );

        if(cmd == null)
            cmd = "principal";

        InterfaceMaterialDao dao;
        Material mat = new Material();
        if(cmd != null || !cmd.equalsIgnoreCase("principal")){

            mat.setDisciplina(request.getParameter("disciplina"));
            mat.setFaculdade(request.getParameter("faculdade"));
            mat.setTema(request.getParameter("tema"));
            mat.setData(request.getParameter("data"));
            mat.setResumo(request.getParameter("resumo"));

        }
            try{
                dao = new MaterialDao();
                RequestDispatcher rd = null;
                if(cmd.equalsIgnoreCase( "listar" )){
                    List materialList = dao.todosMateriais();
                    request.setAttribute("materialList", materialList );
                    rd = request.getRequestDispatcher("/mostrarMateriaisCads.jsp");
                }

TRECHO RESPONSÁVEL DO DAO possui interface;

@Override
    public List<Material> todosMateriais() throws AcademicDaoException {
        PreparedStatement ps= null;
        Connection conn = null;
        ResultSet rs = null;

        try{
            conn = this.conn;
            ps = conn.prepareStatement("SELECT * FROM material");
            rs = ps.executeQuery();
            List<Material> list = new ArrayList<Material>();
            while( rs.next()){
                int id = rs.getInt(1);
                String disciplina = rs.getString(2);
                String faculdade = rs.getString(3);
                String tema = rs.getString(4);
                String data = rs.getString(5);
                String resumo = rs.getString(6);

                list.add( new Material(id, disciplina, faculdade, tema, data, resumo));
            }
            return list;
        }catch(SQLException sqle){
            throw new AcademicDaoException(sqle);
        }finally{
            ConnectionAcademicFactory.closeConnection(conn, ps, rs);
        }
    }
  • Um conselho, não use scriptlets nas JSPs, use JSTL que é bem melhor. - http://www.tutorialspoint.com/jsp/jsp_standard_tag_library.htm -

    romarcio   23 de nov de 2015
  • Seguindo o conselho do amigo, evite scriplets. No link que ele postou, existe um elemento chamado . A estrutura dele é bem parecida com for (value in Object) {}, logo não terás muita dificuldade em usa-lo.

    Paulo Gustavo   24 de nov de 2015
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags jsp java java-ee web ou faça a sua própria pergunta.