栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JSP比较运算符的行为

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JSP比较运算符的行为

的行为

==
未更改,但是的行为
{expr}
已更改…

关于版本:

在JSP规范的向后兼容部分中,

如果指定的版本小于2.1,则{expr}语法仅作为String文字处理。

因此,在EL 2.0之前,所有内容都将被视为字符串文字,并与

.equals
as
==
进行比较,然后将其
equals
内部转换为,但是在2.1中,它将不会转换为字符串,并会抛出异常,
javax.el.ELException:Cannot convert No of type class java.lang.String to class java.lang.Long

关于比较:

在EL版本2.1的JSP规范JSP.2.3.5.7中,指定了以下内容…

  1. 如果A为null或B为null,则对于==或eq返回false,对于!=或ne返回true

  2. 如果A或B为Byte,Short,Character,Integer或Long将A和B都强制转换为Long,则应用运算符

所以,在第一种情况下,

${1 =="" } // ans is false as second one is null as per 1st rule.

在第二种情况下

${1 =="4" } // ans is false as both are different after coercing to Long as per 2nd rule.

在内部类型转换的情况下,以上两种情况都将被强制为long。

但是在第三种情况下不是,

${1=="Yes"}
在第二种情况下,不能将字符串转换(强制)为Long,并且
java.el.ELException
将抛出消息“无法将类型java.lang.String类型的No转换为java.lang.Long类型”。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/615936.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号