_==
_とeq
は、ELを使用して文字列比較テストを行うと同じ結果になります。
_ <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
を使用する必要がありますか? _==
_は整数専用ですか?ただし、文字列でも機能します。 AFAIK _==
_は、hashCodesが等しく、eq
が「意味の異なる」ことを意味するかどうかをテストします。
別の question は_==
_とeq
が同じことをすることを示しています。
ここに違いはありませんか? IS私が述べているものとは異なります:_==
_はhashCodeを見て、eq
はequals(...)
の実装を調べます。
両方とも同じです。文のように読みやすいので、ELでeq
を使用します。
両方とも同じです。両方 ==
およびeq
は、次のコードになります。
jspContext.findAttribute("person.sokande_i").equals("endast_usa")
eL用
${person.sokande_i == 'endast_usa'}
ドキュメント によると、同じことです
に加えて。値とメソッドの式で説明されている[]演算子、ELは次の演算子を提供します。これらの演算子は右辺値式でのみ使用できます。
[...]
リレーショナル:==、eq、!= 、ne、<、lt、>、gt、<=、ge、> =、le。比較は、他の値またはブール、ストリング、整数、または浮動小数点リテラルに対して行うことができます。
ただし、XMLセーフであるため、eq, ne, lt, gt, ge, le
などの文字列演算子が存在します。たとえば、<=
のようにエスケープする必要はありません。
説明されています ここ
ELの便利な機能は、数値またはオブジェクト間で比較を実行できることです。この機能は、主にカスタムタグ属性の値に使用されますが、JSPページとの比較結果(trueまたはfalse)を書き出すためにも同様に使用できます。 ELは、次の比較演算子を提供します。
•==またはeq
•!=またはne
•<またはlt
•>またはgt
•<=またはle
•> =またはge各演算子の2番目のバージョンは、JSP XML構文でエンティティ参照を使用する必要を回避するために存在します。ただし、演算子の動作は同じです。