JSF - ForEach Retornar Mensagem quando não tiver itens

4 respostas
llucas

Olá
Eu to fazendo uma aplicação web e fiz uma página de pesquisa na minha aplicação
Na hora de exibir o resultado eu coloco um c:foreach que imprime um ArrayList do meu Bean na página jsf
Mais ou menos assim o código

<c:forEach var="item" items="#{TesteBean.ItensList}">
      #{item.nome}
   </c:forEach>

O que eu quero saber é se tem como colocar uma mensagem tipo “Nenhum Item Encontrado” quando nenhum item for encontrado(lógico -.-)
Alguma coisa com if ou when e Othrwise

4 Respostas

Guevara

Tente com o <c:choose>, ficando assim:

<c:choose>
<c:when test="${TesteBean.ItensList eq null}"> 
Nenhum registro foi encontrado
</c:when>	
<c:otherwise>	
<c:forEach var="item" items="#{TesteBean.ItensList}">
#{item.nome}
</c:forEach>
</c:otherwise>
</c:choose>

Ou:

<c:choose>
<c:when test="${empty TesteBean.ItensList}"> 
Nenhum registro foi encontrado
</c:when>	
<c:otherwise>	
<c:forEach var="item" items="#{TesteBean.ItensList}">
#{item.nome}
</c:forEach>
</c:otherwise>
</c:choose>

Não sei se vai precisar do “#” no “test”, tenta com e sem e vê se funciona.
[]s

llucas

valeu vou tentar desse jeito

Eu tava tentando uma coisa mais ou menos assim

<c:choose>  
   <c:when test="${TesteBean.ItensList.empty}">   
      Nenhum registro foi encontrado  
   </c:when>   
   <c:otherwise>   
      <c:forEach var="item" items="#{TesteBean.ItensList}">  
         #{item.nome}  
      </c:forEach>  
   </c:otherwise>  
</c:choose>

Mas parece que ele num chamava a função isEmpty() da ArrayList, acho que por que empty é uma palavra chave reservada, sei lá

llucas

A Aproveitando que tu falou de usar ${} e #{}
Qual a diferença dos 2?

Guevara

Essa tralha ai eu desconheço, tente assim:

<c:when test="${empty TesteBean.ItensList}">

Ou:

<c:when test="${TesteBean.ItensList eq null}">
Criado 4 de dezembro de 2010
Ultima resposta 6 de dez. de 2010
Respostas 4
Participantes 2