在表达式语言中,您可以仅使用
==或
eq运算符比较对象值。他们实际上将在幕后使用
Object#equals()。这样做是因为,直到使用当前的EL
2.1版本,您才能调用具有除标准getter(和setter)方法以外的其他签名的方法(在即将到来的EL 2.2中是可能的)。
所以特别的线
<c:when test="${lang}.equals(${pageLang})">应该写成(请注意,整个表达式位于
{和内})
<c:when test="${lang == pageLang}">或者,等效地
<c:when test="${lang eq pageLang}">两者都在幕后,大致解释为
jspContext.findAttribute("lang").equals(jspContext.findAttribute("pageLang"))如果要比较常
String量值,则需要引用它
<c:when test="${lang == 'en'}">或者,等效地
<c:when test="${lang eq 'en'}">这是幕后的大致解释为
jspContext.findAttribute("lang").equals("en")


