`

EL表达式,char类型?

    博客分类:
  • JAVA
阅读更多
前段时间在工作中遇到了一个问题,在jsp页面通过JSTL判断对象是否等于'1',这个对象是char类型的,可是不管怎么操作,这个逻辑判断都是false,就算这个对象是字符'1',同样都是返回false.代码如下:
<c:if test="${contract.c_attri_id=='1'}">经销</c:if>

当时无法处理这个问题,于是一气之下将contract.c_attri_id对象的类型更改为String类型,该判断通过.当contract.c_attri_id为"1"时,那么以上代码将成功返回true,显示"经销".
后来询问我过去的老师,最终知道了这个问题产生的真正原因:

是这样的,EL和Java类型并不是一一对应的。

这是所有解释语言的特点,数据类型都少,便于自动转型和提高开发效率,比如JavaScript。

在你的这个情况下,contract.c_attri_id被转型为Long,想想java基础知识,char也可以表示整型数,对吧?

比如你的char型的'1',就被转型成了long型的49,你可以打印${contract.c_attri_id}看看。

等号右边的'1',被认为是字符串,而不是char类型,EL自动做转型,依据是等号左边的类型。

结果就是比较49==1。

怎么解决呢?

我觉得你的解决方式是对的,就是转成String类型。

java做业务开发的一个经验,针对JavaBean,就是尽量用对象类型,比如Long,String,Boolean。

减少不必要的麻烦。

性能上基本型是好,不过随着java5时代到来,你调用的API,比如Hibernate,对基本型都是包装为对等的对象的。

这样频繁的装箱拆箱,性能就打很大折扣了。
分享到:
评论

相关推荐

    掌握基于栈实现算术表达式求值的原理和算法

    bool push(Telem& el); Telem pop(); Telem gettop(); bool full(); bool empt(); void stackFull(); }; // 具体实现省略 ``` 此外,还需要定义一个函数来比较两个算符的优先级。在这个例子中,使用了一个二...

    javaruanjian

    EL表达式的标准形式是`${expression}`,其中`expression`是你要执行的表达式。例如,`${sessionScope.user.name}`用来获取`session`作用域中名为`user`的对象的`name`属性。 **EL的特点** 1. **语言简单**:EL的...

    使用SQL语句去除、删除数据库中的空格、回车字符的方法

    update ieel00h set el_name1= REPLACE(el_name1, CHAR(13)+CHAR(10), SPACE(0)) where el_no like 'L%' 二、去空格 可以使用 rtrim 和 ltrim 函数去除右边和左边的空格。例如: update ieel00h set el_name1=...

    面试题.docx

    这些题目涉及的知识点包括数据结构(栈、队列)、数据库设计(数据类型、约束)、Java编程(包、线程、内存管理)、Web开发(Servlet、JSP、EL表达式)、SQL(数据插入、数据类型)。理解和掌握这些知识点对于IT专业...

    在线通讯录-寻求帮助

    例如,联系人的姓名可能需要`VARCHAR`类型来存储不同长度的文本,电话号码可能使用`INT`或`CHAR`,具体取决于格式。 - 主外键关系是数据库结构的关键部分,用于确保数据的一致性和完整性。例如,用户表可能有一个...

    java笔试题目.pdf

    Java笔试题目主要涵盖了Java语言的基础知识,如面向对象设计、字符串处理、I/O操作、EL表达式、数据库连接、JSP内置对象、基本数据类型、数据结构、Servlet生命周期、布尔值处理、方法重载以及类继承等方面。...

    华为的面试题 经典的面试题

    在JSP页面中,可以通过不同的方式来获取Bean的属性,包括使用EL表达式、`&lt;jsp:getProperty&gt;`等。选项A使用EL表达式直接获取属性,但需要确保该属性已经暴露给页面范围;选项B使用EL表达式调用getter方法;选项C使用...

    regexp-expand:以rx格式显示点处的ELisp正则表达式

    例如,一个简单的正则表达式“\w+”在RX格式下可能会显示为`(word-char)+`,这样可以清楚地看到它匹配的是连续的一个或多个单词字符。 `regexp-expand`函数的作用在于,当你正在编写或者调试一个正则表达式时,它...

    MLDN笔记(含J2SE,Web和框架部分)

    - **JSTL与EL表达式**:掌握JSP标准标签库(JSTL)和表达式语言(EL)提高页面逻辑处理能力。 - **过滤器与监听器**:学习如何使用Filter和Listener来增强Web应用程序的功能。 3. **框架部分**: - **Spring框架...

    java 面试 总结 jsp 笔试

    Java面试是评估程序员技能的关键环节,涵盖了许多核心概念和技术。以下是对给定文件内容的详细解释,主要关注Java...对于JSP的面试内容,通常涉及Servlet、JSP指令、EL表达式、JSTL标签库等,这些在Web开发中非常重要。

    java从入门到精通知识详解

    6. **EL表达式.docx**:EL(Expression Language)是JavaServer Pages(JSP)中的表达式语言,用于简化页面数据的获取和显示,如`${variable}`。 7. **Mybatis.docx**:MyBatis是一个优秀的持久层框架,它支持定制...

    java数据库笔试面试

    - **EL(Expression Language)**:使用EL表达式进行数据绑定,简化页面代码。 - **JSTL(JavaServer Pages Standard Tag Library)**:通过JSTL标签库增强JSP功能,如foreach、if、fmt等。 3. **Servlet**: - ...

    计算机二级考试C++练习及答案.pdf

    9. 表达式类型:在C++中,表达式a*b+c-d的结果类型是具有最高优先级的类型,这里为double(A选项正确),因为double的精度高于int、float和char。 10. this指针:this指针是C++中每个非静态成员函数的隐含参数,...

    Java面试常见问题从基础到进阶

    Java Web开发中,Servlet是基础,JSP和EL表达式用于构建动态网页。MVC模式分离了模型、视图和控制器,Spring框架提供了全面的Web应用解决方案,Spring Boot简化了应用开发,Spring Security则提供了安全控制。...

    IT java 面试题库

    - 标记库可以通过自定义标签库(TLD)、标记文件(Tag File)或者EL表达式和JSTL实现。 4. **JSTL如何对集合进行遍历?** - 可以使用`c:forEach`标签遍历集合。 5. **JSTL如何进行条件选择?** - 可以使用`c:if...

    JAVA实用教程(第三版)——电子教案.rar

    - **JSP**:介绍了JSP页面的生命周期,EL表达式和JSTL标签库。 - **MVC架构**:概述了Model-View-Controller模式在Web开发中的应用。 通过这些章节的学习,读者将能够全面理解Java语言的基本特性和高级特性,并...

    JAVA笔试面试题库

    - **JSP**:动态网页生成,EL表达式,JSTL标签库。 - **MVC模式**:Model-View-Controller架构,如Spring MVC框架。 - **过滤器和监听器**:实现请求拦截和事件监听。 - **会话管理**:session的概念,生命周期...

    华为公司java面试题

    使用EL表达式获取属性。 - C:错误。无效语法。 - D:错误。无效语法。 - E:错误。无效语法。 - F:正确。使用JSP标签获取属性。 - G:错误。无效语法。 **答案:** B 和 F #### 题目七:会话Bean生命周期 **...

Global site tag (gtag.js) - Google Analytics