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.
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}"/>
Eu tenho que colocar a collection no request pelo método setAttribute ?
Me desculpem pelas perguntas, é porque eu sou iniciante.
sim, tem que colocar.
assim:
na sua classe:
pageContext.getAttribute(varColecao, request.getAttribute(colecao));
e na sua JSP:
request.setAttribute(colecao, objeto));
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"> </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.
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));