I am using JSTL tags. i have below code.
<c:set var="refreshSent" value="false"/>   Now variable refreshSent has boolean value or String?
Thanks!
It is going to be a boolean. You can check it by comparing in a
<c:if test="${refreshSent eq false}">   and
<c:if test="${refreshSent eq 'false'}">   The second is a string comparison.
It is a String.
The following JSP code:
<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>  Outputs the following in a browser:
false : class java.lang.String false : class java.lang.Boolean false : class java.lang.String  But if you use the refreshSent variable in an EL expression where a boolean is expected, it will be converted to a boolean by a call to Boolean.valueOf(String) (according to the JSP Specification).
So if you use:
<c:if test="${refreshSent}">  the value of the test attribute will be set to a boolean false value. The ${refreshSent} expression results in a String, but since the test attribute expects a boolean, a call to Boolean.valueOf("false") is made.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With