Eu estou iniciando no conteúdo de Java Web e fiquei preso na seguinte situação:
estou tentando transferir os valores da ArrayList criados dentro do JSP file para a tabela que se encontra dentro do JSP file também; porém não consigo fazer a iteração desses valores para dentro da tabela. Eu estou criando o código no Eclipse, pois foi a IDE que eu mais me identifiquei, porém o professor deu o conteúdo no Netbeans.
Não sei se o código está errado porque a sintaxe nas IDE é diferente. Além disso, o professor fez pouco caso da minha dúvida, talvez por não saber mexer no Eclipse ou por que não quis ajudar mesmo, e estou precisando de ajuda para poder prosseguir com o conteúdo. O código segue abaixo:
<%@page import=java.util.ArrayList %>
<%@page import=escola.Aluno %>
<table border="">
<tr>
<th><b>ID</b></th>
<th><b>Nome</b></th>
<th><b>Série</b></th>
</tr>
<%
ArrayList<Aluno> alunos = new ArrayList<Aluno>();
alunos.add(new Aluno(1, "Hugo", "1º ano/médio"));
alunos.add(new Aluno(2, "José", "2º ano/médio"));
for (Aluno al : alunos) {
out.println("<tr>");
out.println("<td>" + al.getId() + "</td>");
out.println("<td>" + al.getNome() + "</td>");
out.println("<td>" + al.getSerie() + "</td>");
out.println("</tr>");
}
%>
</table>
O código e os valores saem todos impressos em linha acima do esqueleto da tabela criada (ID, Nome e Série). Eu possuo essa classe Aluno com o construtor contendo os elementos nessa ordem da criação do ArrayList.
Diferente como?
- Você tem certeza que está colocando o código em um arquivo JSP?
- Se sim, pode postar todo o conteúdo?
Caso já tenha postado, mas o que ficou foi só esse, edite a postagem, selecione todo o trecho com código da jsp e clique no botão </> acima do editor.
**Pode ser diferente rs esqueci de colocar o pode, desculpa!
Então, só tem o trecho table border="" (…) /table que eu não sei por que não entrou junto com o código. Fora isso, o código é somente esse. E esse é código que o professor implementou em aula (no Netbeans) e comigo não funcionou (no Eclipse). E está sendo visualizado na forma escrita abaixo:
ArrayList alunos = new ArrayList(); alunos.add(new Aluno(1, “Hugo”, “1º ano/médio”)); alunos.add(new Aluno(2, “José”, “2º ano/médio”)); for (Aluno al : alunos) { out.println(
"); out.println(""); out.println(""); out.println(""); out.println(""); } %>
Id Nome Série
Isso está bem estranho.
Cadê as tags html?
Ainda não chegamos nessa parte. Essa foi a primeira aula usando o JSP (antes, estava aprendendo servlets); mas no Netbeans funcionou e no Eclipse não. Não sei preciso implementar algum código c: no Eclipse para fazer essa iteração, utilizar o JSTL (foram resultados da minha pesquisa ontem pra tentar resolver esse problema rs). Não sei se dá para fazer essa iteração sem utilizar outras ferramentas, no Eclipse.
Ah, no caso do das tags HTML (você diz head, meta, body, certo?), ele pediu para tirar do código, porque senão iria ficar muito complexo para a primeira aula de JSP. Confundi a nomenclatura com @taglib (estava pesquisando isso ontem e a palavra tag ficou associada a essa tag em específico) rs
Cara, eu sugiro que, ao menos, a tag da table vc coloque
A tag table está presente, só que não saiu no código exibido aqui… Ela está antes da tag tr e fechando depois da chave que fechar o forEach.
<table>
<thead>
<tr>
<th><b>ID</b></th>
<th><b>Nome</b></th>
<th><b>Série</b></th>
</tr>
<thead>
<tbody>
<%
ArrayList<Aluno> alunos = new ArrayList<Aluno>();
alunos.add(new Aluno(1, "Hugo", "1º ano/médio"));
alunos.add(new Aluno(2, "José", "2º ano/médio"));
for (Aluno al : alunos) {
out.println("<tr>");
out.println("<td>" + al.getId() + "</td>");
out.println("<td>" + al.getNome() + "</td>");
out.println("<td>" + al.getSerie() + "</td>");
out.println("</tr>");
}
%>
</tbody>
</table>
coloca essa table ai, o arquivo que for colocar esse cpodigo deve ser .jsp e não .html.
caso dê algum problema com a ágina do navegador aberta da um ctrl+u e da uma olhada como a tabela ficou gerada no browser.
Também pode fazer isso:
<td><%= al.getId() %></td>
Eu fiquei revisando o código e vi que o problema estava na ausência das aspas da importação do ArrayList e da classe Aluno. Mas alterei o código para o que você disse, @darlan_machado! Ficou mais limpo visualmente!