为什么'1'> 2是假的?

时间:2010-12-18 03:00:17

标签: java jsp el

因为,我认为每种编程语言都会对int

char行为的ASCIIchar进行比较

我是java-Expression-Language的新手。现在,我在 .jsp

中创建了一个NETBEANS 5.5.1文件

CODE:

   <%=('1' > 2)?"true":"false"%>   //true
    ${('1' > 2)?"true":"false"}    //false

这些表达方式有何不同?

2 个答案:

答案 0 :(得分:7)

EL没有char的概念。它被视为String。单引号或双引号,没关系,它是String

有关EL的更多详细信息,请参阅EL 2.2 specification

答案 1 :(得分:4)

JSP EL中没有char字面类型。 'a'定义包含单个字母a的字符串,而不是java char。然后JSP EL评估器强制双方相同,以便实际进行比较。数字的优先级高于字符串,因此“1”被强制转换为整数1,然后进行比较。