我应该选择==或EQ在EL比较字符串?(Should I choose == or eq for c

2019-06-24 22:30发布

==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 ==测试是否散列码是相等的, eq是指“有意义不同”。

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

有没有区别就在这里? 是不是差一个,我指出: ==着眼于将hashCode和eq着眼于实施equals(...)

Answer 1:

他们都是一样的。 我使用eq在EL,因为它更具有可读性类似的句子。



Answer 2:

两者都是相同的。 无论==eq会导致下面的代码:

jspContext.findAttribute("person.sokande_i").equals("endast_usa")

为EL

${person.sokande_i == 'endast_usa'}


Answer 3:

根据文件 ,这是同样的事情

除了。 在数值和表达式的方法讨论并[]运营商而言,EL提供以下操作符,它可以在只有右值表达式中使用:
[...]
关系 :==,当量 ,=,NE,<,LT,>,GT,<=,GE,> =,嘞!。 比较可以针对其他值或针对布尔,字符串,整数或浮点文字制成。

一个不同之处,但:字符串运营商如eq, ne, lt, gt, ge, le存在,因为它们是XML安全,他们不会需要像转义<=的实例。

它的解释这里

在EL的一个有用功能是执行比较,数字或对象之间的能力。 该功能主要用于自定义标签属性的值,但同样可以用来写出来的比较(true或false)到JSP页面的结果。 的EL提供了以下的比较运算符:

•==或EQ
•!=或NE
•<或LT
•>或GT
•<=或乐
•> =或Ge

每个操作者的所述第二版本的存在是为了避免使用在JSP XML语法实体引用; 但是,经营者的行为是相同的。



文章来源: Should I choose == or eq for comparing string in EL?