48

==eqELを使用して文字列比較テストを実行すると、同じ結果が得られます。

    <c:if test="${person.sokande_i == 'endast_usa'}">Endast USA</c:if>
    <c:if test="${person.sokande_i == 'alla'}">Alla länder</c:if>
    <c:if test="${person.sokande_i == 'alla_utom_usa'}">Alla utom USA</c:if>

eq代わりに使うべきですか?==整数のみですか?ただし、文字列にも機能します。私の知る限り==、hashCodesが等しいかどうかをテストし、eq「意味のある違い」を意味します。

別の質問は、同じことを言っ==て実行します。eq

ここに違いはありませんか?私が言っている違いではありません:==hashCodeをeq見て、の実装を見てequals(...)ください。

4

3 に答える 3

28

ドキュメントによると、それは同じことです

に加えて。および [] 演算子は値とメソッド式で説明されていますが、EL は次の演算子を提供します。これらは右辺値式でのみ使用できます:
[...]
リレーショナル: ==、eq、!=、ne、<、lt、>、 gt、<=、ge、>=、le. 他の値に対して、またはブール、文字列、整数、または浮動小数点リテラルに対して比較を行うことができます。

ただし、1 つの違い: のような文字列演算子は、XML に対して安全であるため存在します。たとえば、eq, ne, lt, gt, ge, leエスケープする必要はありません。<=

ここで説明されています

EL の便利な機能は、数値またはオブジェクト間で比較を実行できることです。この機能は、主にカスタム タグ属性の値に使用されますが、比較の結果 (true または false) を JSP ページに書き出すためにも同様に使用できます。EL は、次の比較演算子を提供します。

• == または eq
• != または ne
• < または lt
• > または gt
• <= または le
• >= または ge

各演算子の 2 番目のバージョンは、JSP XML 構文でエンティティ参照を使用する必要がないようにするために存在します。ただし、オペレーターの動作は同じです。

于 2014-12-29T11:49:45.617 に答える