JSF: if

Olá pessoal,

Dúvida simples. Por que este comando não está sendo executado?

<%@taglib prefix=“f” uri=“http://java.sun.com/jsf/core”%>
<%@taglib prefix=“h” uri=“http://java.sun.com/jsf/html”%>
<%@taglib prefix=“c” uri=“http://java.sun.com/jstl/core”%>

<c:if test="{1 == 1}">
<h:outputText value=“Show” styleClass=“campo”/>
</c:if>

Manda executar e ele não entra no IF. É como se o 1 não fosse igual a 1. O que está errado?
Desde já agardeço.

Simples, faltou o sinal de $ (se for a versão mais recente do Faces, a 1.2, o sinal de # também servirá) antes do abre-chave.

<c:if test="${1 == 1}">
<h:outputText value="Show" styleClass="campo"/>
</c:if>

Oi Leonardo!

Fiz a mudança que você sugeriu: <c:if test="${1 == 1}"> deu erro na instrução. Substitui então por <c:if test="#{1 == 1}">; dessa vez não deu erro, mas, mais uma vez ficou sem executar: como se o 1 fosse diferente de 1.

Outra sugestão?

Desde já agradeço.

Abraço.

Conseguiu resolver o problema??? estou com este mesmo problema!
Só que no caso, o erro não está no JSF e sim no JSTL. Se fizer um IF simples como:

<c:if test="{1==1}"> entrou if </c:if>

ou

<c:if test="${1==1}"> entrou if </c:if>

ou

<c:if test="{1 eq 1}"> entrou if </c:if>

ou

<c:if test="1 == 1"> entrou if </c:if>

Nada funciona!! Alguem sabe pq?

Galera… descobri a solução para este problema.

(versão padrão)
Altere o : <%@taglib prefix=“c” uri=“http://java.sun.com/jstl/core”%>

Para o: <%@taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core”%>

Após isto, funcionará normalmente. :slight_smile:

Que bom que resolveu seu problema…mas…

não use esse tipo de lógica, use o que o framework tem a oferecer…

[quote=Javabuntu]Que bom que resolveu seu problema…mas…

não use esse tipo de lógica, use o que o framework tem a oferecer…[/quote]

ou seja:

<h:outputText value="Show" styleClass="campo" rendered="#{1 == 1}"/>