41

JSTLタグを使用しています。私は以下のコードを持っています。

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

これで、変数refreshSentにブール値または文字列が含まれますか?

ありがとう!

4

5 に答える 5

32

ブール値になります。比較することで確認できます

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

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

2 つ目は、文字列の比較です。

于 2012-09-20T12:35:04.597 に答える
11

です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>

ブラウザに次を出力します。

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

ただし、 aが予期されるrefreshSentEL 式で変数を使用すると、( JSP 仕様に従って) への呼び出しによって aに変換されます。booleanbooleanBoolean.valueOf(String)

したがって、次を使用する場合:

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

属性の値はtestブールfalse値に設定されます。式の${refreshSent}結果は になりますStringが、test属性は を想定しているためboolean、 への呼び出しBoolean.valueOf("false")が行われます。

于 2019-01-08T18:37:48.520 に答える
6

これをブール値に使用します

<c:set var="refreshSent" value="${false}"/>
<c:if test="${refreshSent}">
    some code ........
</c:if>
于 2014-07-11T07:49:50.790 に答える
3
<c:set var="refreshSent" value="false"/>

の式が;とvalue評価される場合。Stringの値はvar refreshSentタイプStringです。

http://docs.oracle.com/javaee/5/jstl/1.1/docs/tlddocs/を参照してください。

舞台裏で行われる自動型変換があります。

http://today.java.net/pub/a/today/2003/10/07/jstl1.htmlを参照してください。

于 2012-09-20T12:34:32.873 に答える