Escopo da var do c:forEach

3 respostas
marcos.junqueira

Pessoal, preciso verificar se a var colaborador desse for each está contida em outra collection. já usei o método contains(Object), mas não funciona.
eu consigo chamar a var colaborador usando ${colaborador}, mas não dah pra passar isso para o método. e agora??? alguem sabe???

<c:forEach items="<%=colaboradoresProjeto%>" var="colaborador" varStatus="varStatus">
                    <tr bgcolor="#FFFFFF">
                        <td>
                        <c:if test="????"
                            ><input type="checkbox" name="colaborador_login" value="${colaborador.login}" checked />
                        </td>
                        <td>${colaborador.nome}</td>
                    </tr>
            </c:forEach>

3 Respostas

bonfarj

O escopo do “var” é o próprio <c:forEach>, você não pode acessá-lo fora, até pq perderia o sentido.

E porque você usou scriptlet no atributo “items”? Você pode usar EL ali também. :wink:

Para ser honesto eu não entendi muito bem a sua dúvida, você pode explicar um pouco melhor?

abraços,

marcos.junqueira
jah resolvi

para chamar o valor de var na iteração atual eu tinha q chamar

pageContext.getAttribute(colaborador);

eu fiz isso pq precisava verificar se um colaborador está presente em outra collection

por ex

uma collection com os que trabalham e outra com os q não trabalham

dai junta essas 2 numa soh e depois faz o forEach, se o colaborador pertence aos que trabalham ele eh marcado, senão ele não eh marcado (marcado no checkItem)
mcruz

Tente isto…

<% java.util.Collection c1 = (java.util.Collection) request.getAttribute("collection_1"); %> <c:forEach items="${colaboradoresProjeto}>" var="colaborador" varStatus="varStatus"> <tr bgcolor="#FFFFFF"> <td> <c:if test="<%= c1.contains(pageContext.getAttribute("colaborador"))> <input type="checkbox" name="colaborador_login" value="${colaborador.login}" checked /> </c:if> </td> <td> ${colaborador.nome} </td> </tr> </c:forEach>

Criado 1 de novembro de 2006
Ultima resposta 1 de nov. de 2006
Respostas 3
Participantes 3