[RESOLVIDO!] Teste de valor booliano na tag <c:when>

1 resposta
felipealbuquerque

Estou com um problema ao tentar validar um campo de valor booliano em uma tag c:when.

Tenho, numa url, uma query string chamada isUpdate, que pode ter como valores true ou false.

Quando eu uso as tags c:choose, c:when e c:otherwhise, quero avaliar se a expressão é verdadeira ou falsa. Segue o código:

<c:choose>
    <c:when test = "${isUpdate eq true}">
          <!-- Aqui vai o código se 'isUpdate' for verdadeiro -->
    </c:when>
    <c:otherwise>
           <!-- Caso contrário-->
    </c:otherwise>
</c:choose>

Porém, mesmo quando isUpdate é verdadeira, é executado o código da tag c:otherwise.

Também, tentei avaliar o valor de isUpdate das seguintes maneiras:

<c:when test = "${isUpdate eq 'true'}">
<c:when test = "${isUpdate == 'true'}">
<c:when test = "${isUpdate eq "true"}">
<c:when test = "${isUpdate == "true"}">
<c:when test = "${isUpdate}">
<c:when test = "${isUpdate.booleanValue eq true}">
<c:when test = "${isUpdate.booleanValue == true}">
<c:when test = "${isUpdate.booleanValue eq "true"}">
<c:when test = "${isUpdate.booleanValue == "true"}">
<c:when test = "${isUpdate.booleanValue}">

E testei as mesmas opções sem o “”, i.e,

<c:when test = ${espressão}>

Onde estou errando?

Desde já agradeço pela atenção.

1 Resposta

felipealbuquerque

O problema é que a aplicação estava ignorando a EL, por isso isUpdate não estava sendo avaliada.

Com um simples:

<%@ page isELIgnored = "false"%>

Eu consegui resolver o problema. A expressão que utilizei foi:

<c:when test = "${isUpdate eq true}">
    <!-- Código se isUpdate for verdadeira-->
</c:when>

[]'s

Criado 19 de maio de 2006
Ultima resposta 19 de mai. de 2006
Respostas 1
Participantes 1