Ajuda com <c:forEach>

4 respostas
dlsilva1812

Bom dia galera.

É o seguinte, o que pode estar errado neste trecho do meu sistema?

<table border="1" style="width: 100%">
					<tr>
						<td width="140px">Veículos</td>
						<td width="77px">Data</td>
						<c:forEach var="lista" items="${chklst.veiculos}"
							end="${chklst.tamanho}">
							<td width="140px"><c:out value="${lista.itemCkl.descricao}" /></td>
						</c:forEach>
						<td align="center">Vencimento em</td>
					</tr>
					<c:forEach var="list" items="${chklst.veiculos}">
						<tr>
							<td width="140px"><c:out value="${list.placa}" /></td>
							<td width="77px"><c:out value="${list.dtCkl}" /></td>
							<c:forEach var="item" items="${chklst.veiculos}"
								end="${chklst.tamanho}">
								<td width="140px"><c:out value="${item.veiCkl.estado}" /></td>
							</c:forEach>
							<td></td>
						</tr>
					</c:forEach>
</table>

Ele deveria montar uma table com 2 linhas, mas está montando com 7.
Já debuguei, a lista está certa, mas eu preciso que seja processada estas 7 linhas, mas carregar informação em 2 linhas. Seriam loops aninhados.

Se alguém puder ajudar aí! Uso JSF 1.2 aqui na firma.

Abraço.

4 Respostas

guilherme_costa1

dlsilva1812:
Bom dia galera.

É o seguinte, o que pode estar errado neste trecho do meu sistema?

<table border="1" style="width: 100%">
					<tr>
						<td width="140px">Veículos</td>
						<td width="77px">Data</td>
						<c:forEach var="lista" items="${chklst.veiculos}"
							end="${chklst.tamanho}">
							<td width="140px"><c:out value="${lista.itemCkl.descricao}" /></td>
						</c:forEach>
						<td align="center">Vencimento em</td>
					</tr>
					<c:forEach var="list" items="${chklst.veiculos}">
						<tr>
							<td width="140px"><c:out value="${list.placa}" /></td>
							<td width="77px"><c:out value="${list.dtCkl}" /></td>
							<c:forEach var="item" items="${chklst.veiculos}"
								end="${chklst.tamanho}">
								<td width="140px"><c:out value="${item.veiCkl.estado}" /></td>
							</c:forEach>
							<td></td>
						</tr>
					</c:forEach>
</table>

Ele deveria montar uma table com 2 linhas, mas está montando com 7.
Já debuguei, a lista está certa, mas eu preciso que seja processada estas 7 linhas, mas carregar informação em 2 linhas. Seriam loops aninhados.

Se alguém puder ajudar aí! Uso JSF 1.2 aqui na firma.

Abraço.

Tenta mudar o código conforme abaixo e veja se da certo:

<table border="1" style="width: 100%">  
                    <tr>  
                        <td width="140px">Veículos</td>  
                        <td width="77px">Data</td>  
                        <c:forEach var="lista" items="${chklst.veiculos}"  
                            end="${chklst.tamanho}">  
                            <td width="140px"><c:out value="${lista.itemCkl.descricao}" /></td>  
                        </c:forEach>  
                        <td align="center">Vencimento em</td>  
                    </tr>  
                    <c:forEach var="list" items="${chklst.veiculos}">  
                        <tr>  
                            <td width="140px"><c:out value="${list.placa}" /></td>  
                            <td width="77px"><c:out value="${list.dtCkl}" /></td>  
                            <td width="140px"><c:out value="${list.veiCkl.estado}" /></td>  
                            <td></td>  
                        </tr>  
                    </c:forEach>  
</table>
dlsilva1812
guilherme_costa:
dlsilva1812:
Bom dia galera.

É o seguinte, o que pode estar errado neste trecho do meu sistema?

<table border="1" style="width: 100%">
					<tr>
						<td width="140px">Veículos</td>
						<td width="77px">Data</td>
						<c:forEach var="lista" items="${chklst.veiculos}"
							end="${chklst.tamanho}">
							<td width="140px"><c:out value="${lista.itemCkl.descricao}" /></td>
						</c:forEach>
						<td align="center">Vencimento em</td>
					</tr>
					<c:forEach var="list" items="${chklst.veiculos}">
						<tr>
							<td width="140px"><c:out value="${list.placa}" /></td>
							<td width="77px"><c:out value="${list.dtCkl}" /></td>
							<c:forEach var="item" items="${chklst.veiculos}"
								end="${chklst.tamanho}">
								<td width="140px"><c:out value="${item.veiCkl.estado}" /></td>
							</c:forEach>
							<td></td>
						</tr>
					</c:forEach>
</table>

Ele deveria montar uma table com 2 linhas, mas está montando com 7.
Já debuguei, a lista está certa, mas eu preciso que seja processada estas 7 linhas, mas carregar informação em 2 linhas. Seriam loops aninhados.

Se alguém puder ajudar aí! Uso JSF 1.2 aqui na firma.

Abraço.

Tenta mudar o código conforme abaixo e veja se da certo:

<table border="1" style="width: 100%">  
                    <tr>  
                        <td width="140px">Veículos</td>  
                        <td width="77px">Data</td>  
                        <c:forEach var="lista" items="${chklst.veiculos}"  
                            end="${chklst.tamanho}">  
                            <td width="140px"><c:out value="${lista.itemCkl.descricao}" /></td>  
                        </c:forEach>  
                        <td align="center">Vencimento em</td>  
                    </tr>  
                    <c:forEach var="list" items="${chklst.veiculos}">  
                        <tr>  
                            <td width="140px"><c:out value="${list.placa}" /></td>  
                            <td width="77px"><c:out value="${list.dtCkl}" /></td>  
                            <td width="140px"><c:out value="${list.veiCkl.estado}" /></td>  
                            <td></td>  
                        </tr>  
                    </c:forEach>  
</table>

Bom dia amigo.

Conforme imagem em anexo, esta é a saída do código acima.

Eu preciso que seja processado, aqueles valores onde está no Desengate, numa linha só, pois aqueles valores referem-se aos ítens dos cabeçalho da tabela.
No caso eu precisava aí, que aparecesse a Placa MON1111 numa linha com os valores vazios e placa ZZZ1251 com 3 valores na mesma linha. Será q fui claro amigo?

Desde já agradeço.
Att.
Diego Silva

guilherme_costa1
dlsilva1812:
guilherme_costa:
dlsilva1812:
Bom dia galera.

É o seguinte, o que pode estar errado neste trecho do meu sistema?

<table border="1" style="width: 100%">
					<tr>
						<td width="140px">Veículos</td>
						<td width="77px">Data</td>
						<c:forEach var="lista" items="${chklst.veiculos}"
							end="${chklst.tamanho}">
							<td width="140px"><c:out value="${lista.itemCkl.descricao}" /></td>
						</c:forEach>
						<td align="center">Vencimento em</td>
					</tr>
					<c:forEach var="list" items="${chklst.veiculos}">
						<tr>
							<td width="140px"><c:out value="${list.placa}" /></td>
							<td width="77px"><c:out value="${list.dtCkl}" /></td>
							<c:forEach var="item" items="${chklst.veiculos}"
								end="${chklst.tamanho}">
								<td width="140px"><c:out value="${item.veiCkl.estado}" /></td>
							</c:forEach>
							<td></td>
						</tr>
					</c:forEach>
</table>

Ele deveria montar uma table com 2 linhas, mas está montando com 7.
Já debuguei, a lista está certa, mas eu preciso que seja processada estas 7 linhas, mas carregar informação em 2 linhas. Seriam loops aninhados.

Se alguém puder ajudar aí! Uso JSF 1.2 aqui na firma.

Abraço.

Tenta mudar o código conforme abaixo e veja se da certo:

<table border="1" style="width: 100%">  
                    <tr>  
                        <td width="140px">Veículos</td>  
                        <td width="77px">Data</td>  
                        <c:forEach var="lista" items="${chklst.veiculos}"  
                            end="${chklst.tamanho}">  
                            <td width="140px"><c:out value="${lista.itemCkl.descricao}" /></td>  
                        </c:forEach>  
                        <td align="center">Vencimento em</td>  
                    </tr>  
                    <c:forEach var="list" items="${chklst.veiculos}">  
                        <tr>  
                            <td width="140px"><c:out value="${list.placa}" /></td>  
                            <td width="77px"><c:out value="${list.dtCkl}" /></td>  
                            <td width="140px"><c:out value="${list.veiCkl.estado}" /></td>  
                            <td></td>  
                        </tr>  
                    </c:forEach>  
</table>

Bom dia amigo.

Conforme imagem em anexo, esta é a saída do código acima.

Eu preciso que seja processado, aqueles valores onde está no Desengate, numa linha só, pois aqueles valores referem-se aos ítens dos cabeçalho da tabela.
No caso eu precisava aí, que aparecesse a Placa MON1111 numa linha com os valores vazios e placa ZZZ1251 com 3 valores na mesma linha. Será q fui claro amigo?

Desde já agradeço.
Att.
Diego Silva

Veja se é isso que você precisa, pelo que entendi você quer que para cada placa tenha apenas uma linha correto?

Da seguinte maneira:

<table border="1" style="width: 100%">
					<tr>
						<td width="140px">Veículos</td>
						<td width="77px">Data</td>
						<c:forEach var="lista" items="${chklst.veiculos}"
							end="${chklst.tamanho}">
							<td width="140px"><c:out value="${lista.itemCkl.descricao}" /></td>
						</c:forEach>
						<td align="center">Vencimento em</td>
					</tr>
					<c:set var="placa" scope="page" value=""/>
					<c:forEach var="list" items="${chklst.veiculos}">
						<c:if test="${list.placa !=  pageScope.placa}">
							<c:set var="placa" value="${list.placa}" scope="page" />
							<tr>
								<td width="140px"><c:out value="${list.placa}" /></td>
								<td width="77px"><c:out value="${list.dtCkl}" /></td>
								<c:forEach var="item" items="${chklst.veiculos}"  end="${chklst.tamanho}">
									<td width="140px"><c:out value="${item.veiCkl.estado}" /></td>
								</c:forEach>
								<td></td>
							</tr>
						</c:if>
					</c:forEach>
</table>

Me desculpe, caso eu tenha entendido errado.

dlsilva1812

Estamos quase lá meu amigo… É isso mesmo, eu preciso que mostre cada placa numa linha, mas não carregou o restante das informações, só imprimiu as placas e data.

Criado 4 de junho de 2013
Ultima resposta 4 de jun. de 2013
Respostas 4
Participantes 2