我应该select==还是eq来比较EL中的string?
==
和eq
给出了相同的结果使用EL来做我的string比较testing:
<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
吗? ==
只是整数? 但它也适用于string。 AFAIK ==
testinghashCodes是否相等, eq
意思是“有意义的不同”。
另一个问题说==
和eq
做同样的事情。
这里没有区别吗? 不是我所说的不同: ==
看着hashCode和eq
看着equals(...)
。
他们都是一样的。 我在EL中使用eq
,因为它更像一个句子可读性。
两者都是一样的。 ==
和eq
都会导致下面的代码:
jspContext.findAttribute("person.sokande_i").equals("endast_usa")
EL
${person.sokande_i == 'endast_usa'}
根据文件 ,这是同样的事情
除了。 和[]运算符在“值和方法expression式”中讨论,EL提供以下运算符,它们只能用于右值expression式中:
[…]
关系 : ==,eq ,!=,ne,<,lt,>,gt,<=,ge,> =,le。 可以针对其他值或布尔,string,整数或浮点文字进行比较。
一个区别是:像eq, ne, lt, gt, ge, le
这样的string运算符是存在的,因为它们是XML安全的,所以它们不需要像<=
那样被转义。
这里解释
EL的一个有用的function是能够执行数字或对象之间的比较。 此function主要用于自定义标记属性的值,但同样可用于将比较结果(true或false)写入JSP页面。 EL提供以下比较运算符:
•==或eq
•!=或者ne
•<或<
•>或者
•<=或le
•> =或ge每个运算符的第二个版本的存在是为了避免在JSP XML语法中使用实体引用; 然而,运营商的行为是一样的。