Página JSP, código JSTL

5 respostas
milenalp

Oi gente,

Vocês conseguem visualizar qual o erro de lógica deste código:

<c:forEach var="varCompromisso" items="${colCompromisso}">
   <c:if test="${(diaAtual==dataMarcada) && (mesAtual==mesMarcado) && (anoAtual==anoMarcado)}">
        <c:out  value="${varCompromisso.titulo }"/>
    </c:if>
</c:forEach>

O atributo colCompromisso é uma collection de compromissos que eu to pegando para a página JSP mostrar o título na data em que determinado compromisso foi marcado, em um calendário.
Só que do jeito que está ele não aparece. :cry:
Se alguém puder me ajudar ficarei muito agradecida!

5 Respostas

ziegfried

de onde vem essas variáveis diaAtual, dataMarcada, etc… o erro deve estar nesse if

milenalp

Segue outra parte do código pra você entender de onde vem as variáveis:

<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/>
                     </span>  	
                     <c:forEach var="varCompromisso" items="${colCompromisso}">
                         <c:if test="${(diaAtual==dataMarcada) && (mesAtual==mesMarcado) && (anoAtual==anoMarcado)}">
                             <c:out  value="${varCompromisso.titulo }"/>
                         </c:if>
                      </c:forEach>	
                      <c:set var="diaAtual" value="${diaAtual+1}" ></c:set>
                </c:if>
                <span class="style7">&nbsp;</span></td>
       </c:forEach>
   </tr>
</c:forEach>
milenalp

Já descobri o que está faltando. Este atributo dataMarcada é do objeto Compromisso, só que é um atributo do tipo Date e eu quero extrair o dia, o mês e o ano pra comparar. Tem alguma idéia de como poderia fazer isso???

milenalp

Pesquisei aqui e descobrir a tag <fmt:formatDate />, mas como é que eu retiro o dia, mes e ano separadamente?

ramilani12

Dessa forma:

<fmt:formatDate value=?${data}? pattern="dd/MM/yy"/>
Criado 8 de junho de 2007
Ultima resposta 8 de jun. de 2007
Respostas 5
Participantes 3