JSTL与EL表达式(为空判断)
一、循环遍历集合
1、在jsp中引入标准函数声明
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
2、若要判断集合的大小,则需要引入如下声明
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
3、如何使用jstl判断集合是否为空
${user}为集合,user为集合名
<c:if test="${empty user}">无信息!</c:if>为空
<c:if test="${!empty user}">其它</c:if>非空
4、如何取得集合的大小
${fn:length(集合名<如果是session中的集合则应该加上sessionScope.键>)}
${fn:length(map)}
5、如何取得保存在session中的对象?
${sessionScope.键.对象属性}
6、varStatus显示循环变量的状态
例:<tag:forEach var="currentFood" items="${sessionScope.foods}" varStatus="status"
<tag:if test="${status%2==1}">
.....................
</tag:if>
</tag:forEach>
其中status这个变量就记录了循环变量的状态
7、如何遍历Map集合
<c:forEach var="foodmap" items="${sessionScope.cart}" varStatus="status">
<c:set var="subtotal" value="${foodmap.value.bean.foodPrice*foodmap.value.quantity}"></c:set>
</c:forEach>
遍历Map集合的值:
foodmap:保存session中的map
foodmap.value:取得map的值,即获取保存在map中的一个对象
要获取对象中的数据,必须用foodmap.value.quantity去点对象的属性(quantity就是对象的属性)
8、对象属性为空显示默认值
<c:forEach var="customer" items="${customers}">
<tr>
<td><c:out value="${customer.lastName}"/></td>
<td><c:out value="${customer.phoneHome}" default="no home phone specified"/></td>
<td>
<c:out value="${customer.phoneCell}" escapeXml="false">
<font color="red">no cell phone specified</font>
</c:out>
</td>
</tr>
</c:forEach>
分享到:
相关推荐
JSTL(JavaServer Pages Standard Tag Library)是一种为简化和标准化JSP页面开发而设计的标签库。它提供了一系列预定义的动作和脚本功能,使得开发者能够在不使用或较少使用自定义动作的情况下构建动态网页。本文将...
- **Empty操作符**:用于检查变量是否为空或null。 - **比较操作符**:支持等号、不等号、大小关系等常见比较。 - **数字运算符与逻辑运算符**:与Java语言中的运算符相同。 #### 六、Core标签详解 1. **`...
其中,`value`属性指定要输出的表达式,`escapeXml`决定是否转义特殊字符,`default`提供当表达式值为空或null时的默认输出。 例如: ```jsp 您的用户名是: ${user.username}" default="guest"/> ``` 这段代码将...
- `<c:if>`:用于条件判断,如检查数据是否为空。 - `<c:choose>`、`<c:when>`、`<c:otherwise>`:提供多分支选择结构,类似于Java的switch语句。 - `<c:forEach>`:循环遍历数组、集合或迭代器。 **6. JSTL处理...
- 空检查:`${empty username}` 检查 `username` 是否为空。 ### JSTL标签 #### `<c:out>` `<c:out>` 标签用于输出数据,可以避免XSS攻击。它可以设置默认值,并有转义字符的功能,如 `escapeXml` 属性。 ```html...
- 如果`substring`为`null`,则同样将其视为空字符串处理。 - 此函数区分大小写。 - **等价形式**:可以使用`fn:indexOf(string, substring) != -1`来实现相同的功能。 ##### 2. `fn:containsIgnoreCase(string,...
- `default`:可选属性,如果 `value` 为空则显示此值。 - `escapeXml`:可选属性,默认为 `true`,用于转义 XML 特殊字符。 **示例**: ```jsp ${sessionScope.anyValue}" default="no value" escapeXml="false...
例如,`<x:parse>`标签可以将XML字符串转换为DOM对象,`<x:out>`用于输出XML节点的内容。 3. **JDBC组件**:JSTL的JDBC标签库允许在JSP中进行数据库操作,如连接数据库、执行SQL查询、处理结果集等,而无需编写Java...
此外,`<c:out>` 还支持设置默认值,当表达式的值为空时可以显示默认值。示例: ```jsp ${user.name}" default="Guest" /> ``` 这段代码会输出用户的名字,如果名字未定义,则显示“Guest”。 ##### 2.2 `...
JSTL的当前版本为1.02,最终发布版为1.0。 JSTL包含两大部分内容:标签库和表达式语言(Expression Language,简称EL)。标签库支持四种标签: 1. Core标签库,用于执行JSP中的基本操作。标签URI前缀为`***`,标签...
此标签的value属性是必须的,用于指定要输出的值,而default属性则是当value值为空或不存在时显示的默认文本。escapeXml属性用于指定是否要对输出内容中的特殊字符进行转义,当escapeXml为true时,特殊字符不会被...
- **`empty`属性**:当`items`为空或为null时,可以指定执行的代码。 例如,如果我们想要每隔两个元素打印一次数据,可以这样写: ```jsp ${datas}" var="data" varStatus="loop" begin="1" step="2"> ${data}"/>...
- **空值检查**:使用`empty`关键字来检查变量或集合是否为空。 #### 四、JSTL标签库的使用 - **安装与配置**:为了使用JSTL,需要下载并安装JSTL的JAR包(如`jstl-1.2.jar`、`standard-1.1.2.jar`),并将它们...
- **`empty`**:用于判断一个变量是否为空或未定义。 - **`func(args)`**:调用方法,`func`表示方法名,`args`表示参数列表。 ##### 示例 下面通过具体的示例来展示部分EL表达式操作符的使用: 假设页面作用域中...
如检查一个变量是否为空: ```jsp ${not empty name}"> Hello, ${name}! ``` ### 使用JSTL Format标签库 **日期和时间格式化**:`<fmt:formatDate>`标签用于格式化日期: ```jsp ${now}" pattern="yyyy-MM-dd ...
- **验证运算符**:empty,检查变量是否为null或为空 4. **变量与JavaBean属性** EL会按照pageContext、request、session、application的顺序查找变量,并输出对应的属性值。如果变量不存在,则返回null。例如: ...
例如,通过`<c:set>`标签设置session属性,`<c:if>`标签检查session是否存在或是否为空,然后可能使用EL表达式`${sessionScope}`来获取并显示session中的数据。 源代码的学习价值在于,它能帮助开发者更好地理解...
- `c:if`:条件判断,如检查变量是否为空或满足特定条件。 - `c:forEach`:循环遍历集合或数组。 - `c:set`:设置变量值。 - `c:choose`, `c:when`, `c:otherwise`:条件分支结构,类似Java的switch语句。 - `fmt:...