Java 我应该选择==还是eq来比较EL中的字符串?

Java 我应该选择==还是eq来比较EL中的字符串?,java,jakarta-ee,el,websphere-8,Java,Jakarta Ee,El,Websphere 8,=和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'}">

=
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>
Endast美国
阿拉州
阿拉乌托姆美国酒店
我应该改用
eq
==
仅适用于整数吗?但它也适用于字符串。AFAIK
=
测试hashCodes是否相等,
eq
表示“有意义的不同”

另一个说
=
eq
做同样的事情


这里没有区别吗?区别不是我要说的:
==
查看hashCode和
eq
查看
equals(…)
的实现它们都是相同的。我在EL中使用了
eq
,因为它更像一个句子。

两者都是相同的。
=
eq
将产生以下代码:

jspContext.findAttribute("person.sokande_i").equals("endast_usa")
给艾尔

${person.sokande_i == 'endast_usa'}
据我所知,这是一样的

除此之外。值和方法表达式中讨论的[]运算符,EL提供了以下运算符,这些运算符只能用于右值表达式:
[…]
关系的=,情商,!=,ne,gt,=,le。可以与其他值或布尔值、字符串、整数或浮点文本进行比较


不过有一个区别:像
eq、ne、lt、gt、ge、le这样的字符串运算符是XML安全的,它们不需要像
它说的==和'eq'那样进行转义,所以它们做的是相同的事情。