我正在使用JSTL标签.我有以下代码.
<c:set var="refreshSent" value="false"/>
Run Code Online (Sandbox Code Playgroud)
现在变量refreshSent有布尔值还是String?
谢谢!
Chr*_*ris 26
它将是一个布尔值.您可以通过比较来检查它
<c:if test="${refreshSent eq false}">
Run Code Online (Sandbox Code Playgroud)
和
<c:if test="${refreshSent eq 'false'}">
Run Code Online (Sandbox Code Playgroud)
第二个是字符串比较.
Joh*_*n S 10
它是一个String
.
以下 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>
Run Code Online (Sandbox Code Playgroud)
在浏览器中输出以下内容:
false : class java.lang.String
false : class java.lang.Boolean
false : class java.lang.String
Run Code Online (Sandbox Code Playgroud)
但是,如果您refreshSent
在需要 a 的 EL 表达式中使用该变量boolean
,它将boolean
通过调用Boolean.valueOf(String)
(根据JSP 规范)转换为 a 。
所以如果你使用:
<c:if test="${refreshSent}">
Run Code Online (Sandbox Code Playgroud)
该test
属性的值将设置为布尔false
值。的${refreshSent}
在表达结果String
,但是由于test
属性期望一个boolean
,呼叫到Boolean.valueOf("false")
制成。
我用它来做布尔值
<c:set var="refreshSent" value="${false}"/>
<c:if test="${refreshSent}">
some code ........
</c:if>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
66328 次 |
最近记录: |