==
和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
做同样的事情。
这里没有区别吗?与我说的不同之处在于:==
查看hashCode,eq
查看equals(...)
的实现。
答案 0 :(得分:43)
他们都是一样的。我在EL中使用eq
,因为它更像句子一样可读。
答案 1 :(得分:26)
两者都是一样的。 ==
和eq
都会生成以下代码:
jspContext.findAttribute("person.sokande_i").equals("endast_usa")
EL的
${person.sokande_i == 'endast_usa'}
答案 2 :(得分:23)
根据documentation,它是一样的
除了。 EL和[]运算符在值和方法表达式中讨论,EL提供以下运算符,只能在rvalue表达式中使用:
[...]
关系: ==,eq ,!=,ne,&lt;,lt,&gt;,gt,&lt; =,ge,&gt; =,le。可以与其他值或布尔值,字符串,整数或浮点文字进行比较。
但有一点不同:像eq, ne, lt, gt, ge, le
这样的字符串运算符是存在的,因为它们是XML安全的,例如它们不需要像<=
那样进行转义。
解释here
EL的一个有用功能是能够在数字或对象之间进行比较。此功能主要用于自定义标记属性的值,但同样可用于将比较结果(true或false)写入JSP页面。 EL提供以下比较运算符:
•==或eq
•!=或ne
•&lt;或者lt •&gt;或gt
•&lt; =或le
•&gt; =或ge
每个运算符的第二个版本的存在是为了避免在JSP XML语法中使用实体引用;但是,运营商的行为是一样的。