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'那样进行转义,所以它们做的是相同的事情。