Mostrar uma collection no html

5 respostas
milenalp

Oi pessoal,

Desculpem aí a pergunta besta, mas é que estou precisando associar um evento a uma determinada data em um calendário que fiz. Só que não estou conseguindo mostrar a collection de eventos na página jsp.
Alguém pode me ajudar???
Eu fiz um servlet que pega os eventos de manda pra tela, mas na hora de mostrar to na dúvida se eu devo fazer um loop com a tag <c:forEach> ou se não seria necessário isso.

5 Respostas

vanzella

Milenalp, a tag <c:forEach> já faz o loop, voce só adiciona sua collection e os campos que ela deve mostar.

Assim

<c:forEach var="varPessoa" items="${colecao.pessoa}">
    <c:out  value="${varPessoa.nome}"/>
</c:forEach>

Obs: no <c:out value="${varPessoa.nome}"/> utilize o atributo direto sem get.

Correto

<c:out  value="${varPessoa.nome}"/>

Errado

<c:out  value="${varPessoa.getNome}"/>
milenalp

Eu tenho que colocar a collection no request pelo método setAttribute ?
Me desculpem pelas perguntas, é porque eu sou iniciante.

vanzella

sim, tem que colocar.
assim:

na sua classe:

pageContext.getAttribute(varColecao, request.getAttribute(colecao));

e na sua JSP:

request.setAttribute(colecao, objeto));
milenalp

Olha como eu coloquei na página jsp:

<c:set var="diaAtual" value="${1}" ></c:set>
		
		<c:set var="comecou" value="${false}" ></c:set>
		
		<c:forEach begin="1" end="6" varStatus="status" >
			<tr>
<c:forEach begin="1" end="7" varStatus="status2" >
					<td height="45" bgcolor="#DFEBF7" valign="top" >
					    <span class="style7">
							  <c:if test="${(comecou || status2.index==diaSemana) && diaAtual<=numeroDias}">
							     <c:set var="comecou" value="${true}" ></c:set>
						       </c:if>
					    	
			                  <c:if test="${(comecou || status2.index==diaSemana) && diaAtual<=numeroDias}">
				                  	<span class="dia_cal">
					                  	${diaAtual } <br/>
					                  	
					                  	<c:forEach var="compromisso" items="${itCompromisso.compromisso}">
					                  	
					                  	
						                  	<c:if test="${(diaAtual==dataMarcada) && (mesAtual==mesMarcado) && (anoAtual==anoMarcado)}">
							                  	<a href="#" class="style7" onclick="popup();"> 
							                  		<c:out  value="${compromisso.nome}"/>

							                  	</a>
						                  	</c:if>
						                 
						                 </c:forEach>
						                  	
						                  	
										<c:set var="diaAtual" value="${diaAtual+1}" ></c:set>
									</span>
								</c:if>
	                    <span class="style7">&nbsp;</span></td>
				</c:forEach>

E no Servlet eu coloquei assim:

Iterator<Compromisso> itCompromisso = compromisso.buscar(msg);
					

			
			ServletRequest pageContext = null;
			pageContext.setAttribute("itCompromisso", request.getAttribute("itCompromisso"));

Mesmo assim ainda não está mostrando o compromisso. :frowning:

vanzella

voce inverteu.
na sua servlet coloca.

request.setAttribute("itCompromisso",  <objeto que quer mandar no caso sua collection));

RequestDispatcher rd = null;
rd = request.getRequestDispatcher(endereço pra onde vai);
rd.forward(request, response);

na sua jsp vc tem que pegar

pageContext.getAttribute(varColecao, request.getAttribute(itCompromisso));
Criado 5 de junho de 2007
Ultima resposta 5 de jun. de 2007
Respostas 5
Participantes 2