前段时间在工作中遇到了一个问题,在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(); }; // 具体实现省略 ``` 此外,还需要定义一个函数来比较两个算符的优先级。在这个例子中,使用了一个二...
EL表达式的标准形式是`${expression}`,其中`expression`是你要执行的表达式。例如,`${sessionScope.user.name}`用来获取`session`作用域中名为`user`的对象的`name`属性。 **EL的特点** 1. **语言简单**:EL的...
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=...
这些题目涉及的知识点包括数据结构(栈、队列)、数据库设计(数据类型、约束)、Java编程(包、线程、内存管理)、Web开发(Servlet、JSP、EL表达式)、SQL(数据插入、数据类型)。理解和掌握这些知识点对于IT专业...
例如,联系人的姓名可能需要`VARCHAR`类型来存储不同长度的文本,电话号码可能使用`INT`或`CHAR`,具体取决于格式。 - 主外键关系是数据库结构的关键部分,用于确保数据的一致性和完整性。例如,用户表可能有一个...
Java笔试题目主要涵盖了Java语言的基础知识,如面向对象设计、字符串处理、I/O操作、EL表达式、数据库连接、JSP内置对象、基本数据类型、数据结构、Servlet生命周期、布尔值处理、方法重载以及类继承等方面。...
在JSP页面中,可以通过不同的方式来获取Bean的属性,包括使用EL表达式、`<jsp:getProperty>`等。选项A使用EL表达式直接获取属性,但需要确保该属性已经暴露给页面范围;选项B使用EL表达式调用getter方法;选项C使用...
例如,一个简单的正则表达式“\w+”在RX格式下可能会显示为`(word-char)+`,这样可以清楚地看到它匹配的是连续的一个或多个单词字符。 `regexp-expand`函数的作用在于,当你正在编写或者调试一个正则表达式时,它...
- **JSTL与EL表达式**:掌握JSP标准标签库(JSTL)和表达式语言(EL)提高页面逻辑处理能力。 - **过滤器与监听器**:学习如何使用Filter和Listener来增强Web应用程序的功能。 3. **框架部分**: - **Spring框架...
Java面试是评估程序员技能的关键环节,涵盖了许多核心概念和技术。以下是对给定文件内容的详细解释,主要关注Java...对于JSP的面试内容,通常涉及Servlet、JSP指令、EL表达式、JSTL标签库等,这些在Web开发中非常重要。
6. **EL表达式.docx**:EL(Expression Language)是JavaServer Pages(JSP)中的表达式语言,用于简化页面数据的获取和显示,如`${variable}`。 7. **Mybatis.docx**:MyBatis是一个优秀的持久层框架,它支持定制...
- **EL(Expression Language)**:使用EL表达式进行数据绑定,简化页面代码。 - **JSTL(JavaServer Pages Standard Tag Library)**:通过JSTL标签库增强JSP功能,如foreach、if、fmt等。 3. **Servlet**: - ...
9. 表达式类型:在C++中,表达式a*b+c-d的结果类型是具有最高优先级的类型,这里为double(A选项正确),因为double的精度高于int、float和char。 10. this指针:this指针是C++中每个非静态成员函数的隐含参数,...
Java Web开发中,Servlet是基础,JSP和EL表达式用于构建动态网页。MVC模式分离了模型、视图和控制器,Spring框架提供了全面的Web应用解决方案,Spring Boot简化了应用开发,Spring Security则提供了安全控制。...
- 标记库可以通过自定义标签库(TLD)、标记文件(Tag File)或者EL表达式和JSTL实现。 4. **JSTL如何对集合进行遍历?** - 可以使用`c:forEach`标签遍历集合。 5. **JSTL如何进行条件选择?** - 可以使用`c:if...
- **JSP**:介绍了JSP页面的生命周期,EL表达式和JSTL标签库。 - **MVC架构**:概述了Model-View-Controller模式在Web开发中的应用。 通过这些章节的学习,读者将能够全面理解Java语言的基本特性和高级特性,并...
- **JSP**:动态网页生成,EL表达式,JSTL标签库。 - **MVC模式**:Model-View-Controller架构,如Spring MVC框架。 - **过滤器和监听器**:实现请求拦截和事件监听。 - **会话管理**:session的概念,生命周期...
使用EL表达式获取属性。 - C:错误。无效语法。 - D:错误。无效语法。 - E:错误。无效语法。 - F:正确。使用JSP标签获取属性。 - G:错误。无效语法。 **答案:** B 和 F #### 题目七:会话Bean生命周期 **...