impostare il valore booleano in una variabile usando tag JSTL?

Io sto usando il tag JSTL. ho sotto il codice.

<c:set var="refreshSent" value="false"/>

Ora variabile refreshSent ha valore booleano o Stringa?

Grazie!

 

5 Replies
  1. 26

    Sta andando essere un valore booleano. Si può verificare confrontando in un

    <c:if test="${refreshSent eq false}">

    e

    <c:if test="${refreshSent eq 'false'}">

    Il secondo è una stringa di confronto.

    • Penso che esplicitamente dicendo che il primo avrà successo e il secondo non riuscirà a chiarire la risposta. So che è stupido, ma io tendo ad andare per il codice e solo dopo leggere il testo. Grazie!
    • Dal refreshSent è in realtà un String con il valore "false", entrambe le chiamate avrà successo.
  2. 5

    Io uso questo per booleano

    <c:set var="refreshSent" value="${false}"/>
    <c:if test="${refreshSent}">
        some code ........
    </c:if>
    • Entrambi value=”${false}” e value=”false” valutare la stessa cosa nel tuo test… quindi, se stai cercando di risparmiare caratteri, basta usare value=”false” (evitandogli il ${ } po’…).
  3. 2

    È un String.

    Il seguente codice JSP:

    <c:set var="refreshSent" value="false" />
    <c:set var="refreshSent2" value="${false}" />
    <c:set var="refreshSent3" value="${'false'}" />
    
    <div>
    <div>${refreshSent} : ${refreshSent.class}</div>
    <div>${refreshSent2} : ${refreshSent2.class}</div>
    <div>${refreshSent3} : ${refreshSent3.class}</div>
    </div>

    Uscite in un browser:

    false : class java.lang.String
    false : class java.lang.Boolean
    false : class java.lang.String

    Ma se si utilizza il refreshSent variabile in un’espressione EL dove un boolean è previsto, verrà convertito in un boolean da una chiamata a Boolean.valueOf(String) (secondo il JSP Specifica).

    Quindi, se si utilizza:

    <c:if test="${refreshSent}">

    il valore della test attributo è impostato su un valore booleano false valore. Il ${refreshSent} espressione dei risultati in un String, ma dal momento che il test attributo si aspetta un boolean, un invito a `Boolean.valueOf(“false”) è fatto.

  4. 1

    Sì, si può essere di tipo booleano e Stringa.

    <c:if test="${refreshSent}">
        your code...
    </c:if>

    o si può utilizzare come questa

    <c:if test="${refreshSent eq 'false'}">
        your code...
    </c:if>

    Grazie.

Lascia un commento