【问题标题】:Why '1' > 2 is false?为什么 '1' > 2 是假的?
【发布时间】:2010-12-18 03:00:16
【问题描述】:

我认为每种编程语言都会比较 intcharon 行为的 ASCIIchar

我是 java-Expression-Language 的新手。现在在这里,我在 NETBEANS 5.5.1

中创建了一个.jsp 文件

代码:

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

这些表达方式有什么不同?

【问题讨论】:

    标签: java jsp el


    【解决方案1】:

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

    更多关于 EL 的详情请见EL 2.2 specification

    【讨论】:

    • 根据您删除的评论:&lt;% %&gt; 的东西是 JSP scriptlets。它基本上是“原始”Java 代码,具有与普通 Java 类相同的规则。这就是 EL 的不同之处,EL 有自己的规则,您可以在 EL 规范中阅读。实际上,scriptlets 在 JSP 文件中应该是avoided
    • +1 用于在stackoverflow.com/questions/3177733/…提供答案链接
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2011-07-09
      • 2020-02-14
      • 2011-12-04
      • 1970-01-01
      • 2014-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多