在做jsp系统的时候经常会使用el标签,而empty是使用比较多的一个,这个标签也很方便。但是一直只是会用,从来都没有好好的去思考它的执行原理,所以在写这个之前碰到了一点错误,先来看看我的错误:
<c:if test="${not empty order.shipphone>
${order.shipphone}
</c:if>
这个语句想实现的效果很简单就是进行判断如果值不为null的话才会输出,但是这样却没有实现我要的效果,页面中输出了null,这就奇怪了既然${order.shipphone}已经为null了,这个判断执行的话应该是不允许它通过的,为什么又通过了。于是乎去查询了一下数据库,得到如下:
于是乎就更加迷惑了,对啊值是空的啊,最后实在没办法,只好求助java群了,其中一个的话让我好好思考了一下:
是不是因为${order.shipphone}是字符串的“null”
最后再去看了一下empty的用法:
<c:if test="${! empty key}">${key}</c:if>
<c:if test="${empty key}">所有</c:if>
当key不为空时输出key的值。当key为空时,输出“所有”
规则:
1若key为null时,返回true
2若key为空String时,返回true
3若key为空Array时,返回true
4若key为空Map时,返回true
5若key为空Collection时,返回true
6否则,返回false
从上面可以看出,如果是字符串null的话,这个判断当然是true,也就是说order中的shipphone本身并不为null,它有值,并且值为null,就是这个解释。
看来还是只懂表面,不懂实质啊,也没办法,工作就一个劲完成目标,有时候的确不允许停下来。
那就找一下折中的办法吧!!
- 大小: 7.5 KB
分享到:
相关推荐
通过使用EL表达式,开发者可以避免在JSP页面中编写复杂的Java代码,使得页面更加清晰和易于维护。 ### EL表达式的`empty`操作符详解 `empty`操作符是EL表达式中一个非常实用的功能,主要用于判断一个变量是否为空...
EL 表达式还可以从域中取出数据,相当于使用 request.getParameter()、request.getParameterValues()、param、paramValues 等方法来获取请求参数和请求头信息。 在 EL 表达式中,还有 11 个内置对象,可以用于简化...
### EL表达式的使用方法 #### 一、简介 在Java Web开发中,EL(Expression Language)表达式是一种非常实用的功能,它允许开发者在JSP页面中动态...在实际项目开发中,熟练掌握EL表达式的使用方法是非常有必要的。
本篇文章将详细介绍EL表达式中的各种运算符及其用法,包括逻辑运算符、关系运算符、算术运算符等,并通过具体的例子进行说明,帮助读者更好地理解和掌握EL表达式的使用技巧。 #### 二、EL表达式基础 EL表达式通常...
EL还支持调用自定义函数,可以在EL表达式中使用这些函数来执行更复杂的逻辑操作。函数调用的基本语法为`{fn: functionName(args)}`。 - **函数调用格式**:`{fn: functionName(arg1, arg2, ...)}` 这里`fn:`是...
或使用方法调用 --%> Welcome, ${user.greet()}! ``` ### 总结 EL表达式是JSP中强大的数据绑定工具,极大地提高了开发效率和代码质量。通过熟练掌握EL表达式,开发者可以编写出更加简洁、清晰的JSP页面,提升整个...
- 在EL表达式中,不能使用对象的实例方法。 - EL表达式中的数据操作仅限于读取,不能进行赋值等写操作。 EL表达式已经成为Java Web开发中处理数据存取的重要工具,特别是在使用JSP和JSF技术时。熟悉EL表达式的使用...
#### 三、EL表达式的基本使用 1. **在JSTL中的使用** 在JSTL(JavaServer Pages Standard Tag Library)中,EL 表达式通常用于设置标签的属性值。例如,在 `<c:out>` 标签中使用 EL 表达式输出变量的值: ```...
下面将详细解析EL表达式的使用方法及其功能。 #### EL表达式的基本格式 EL表达式的基本格式有两种:`{expression}` 和 `[]` 。其中,大括号 `{}` 是最常用的EL表达式语法,用来表示要计算或访问的对象;方括号 `[]...
JSP提供了一些预定义的EL隐式对象,如`pageContext`、`request`、`session`和`application`,它们可以直接在EL表达式中使用。此外,还有`param`和`paramValues`用于访问请求参数,`header`和`headerValues`用于访问...
EL表达式通常以`${}`包裹,其设计目标是让开发者能够更加方便地访问和操作存储在不同作用域中的Java对象。 1. **EL语法结构** EL表达式的标准格式是`${expression}`,其中`expression`是一个用来检索数据的表达式...
### EL表达式详解 EL(Expression Language)是JavaServer Pages (JSP) 技术中的一个重要组成部分,它提供了一种简单...通过本文的介绍,希望读者能够掌握EL表达式的使用方法,并将其应用于实际项目中,提升开发效率。
EL表达式是JSP开发中不可或缺的一部分,它提高了代码的可读性和可维护性,减少了Java代码的使用,使得开发者可以更专注于业务逻辑而不是数据获取。通过熟练掌握EL表达式,可以更高效地构建动态Web应用程序。
EL表达式,全称Expression Language(表达式语言),是一种在JSP(Java Server Pages)技术中使用到的,用于简化Java Web应用程序中数据获取的轻量级语言。EL的主要作用包括访问Web应用程序中的各种对象,如JavaBean...
### Java中使用EL表达式详解 #### 一、EL表达式概述 EL(Expression Language),即表达式语言,是在JSP 2.0 (JavaEE 1.4) 规范中引入的一种强大的功能,用于简化数据获取和处理过程。EL表达式主要用来替代JSP页面中...
在EL表达式中,可以使用`empty`关键字来判断一个对象是否为空。如果对象不存在或者其值为`null`、空字符串或空集合,则返回`true`;反之则返回`false`。 - **后台设置**: ```java request.setAttribute("value1...
### EL 表达式简介与使用方法 #### 一、EL 表达式的概念与特点 **EL**(Expression Language),即表达式语言,是 **JSP 2.0** 引入的一种用于计算和输出 Java 对象的简便语言。它是 JSP 2.0 的两大核心特性之一,...
### EL表达式与JSTL标签库详解 #### 一、EL表达式 **1.1 什么是EL表达式** EL(Expression Language)表达式是一种简洁的语法结构,...以上就是关于EL表达式与JSTL标签库的基础知识和使用方法,希望对你有所帮助!
EL表达式中的变量通常是指存储在不同作用域中的属性。EL表达式会根据不同的作用域顺序查找相应的变量。作用域的顺序依次为 Page、Request、Session 和 Application。 - **PageScope**: 当前页面的作用域。 - **...
#### 一、EL表达式的使用方法及示例 ##### 1. EL隐含对象 在Java Server Pages (JSP) 技术中,EL(Expression Language)表达式是一种用于简化JSP页面中Java代码编写的工具。它提供了一种简便的方式来访问存储在...