Não consigo implementar os valores do ArrayList na tabela no JSP file

10 respostas
jspeclipseprogramaçãojava
P

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.

10 Respostas

darlan_machado

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.

P

**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
darlan_machado

Isso está bem estranho.
Cadê as tags html?

P

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.

P

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

darlan_machado

Cara, eu sugiro que, ao menos, a tag da table vc coloque

P

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.

Fabio_Dos_Reis
<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.

darlan_machado

Também pode fazer isso:

<td><%= al.getId() %></td>
P

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!

Criado 7 de agosto de 2019
Ultima resposta 7 de ago. de 2019
Respostas 10
Participantes 3