<c:set><c:if test=””>联合使用,使用el表达式对较复杂对象进行比较处理

在JSP中,当需要使用<c:if test="">进行比较时,可能遇到的对象是复杂类型,如对象、数组或特殊格式字符串。本文提供了一种解决方案,通过<c:set>结合EL表达式和fn函数,对${temp.supplier}进行split处理,实现与list.clientId的比较。示例代码展示如何在<c:forEach>遍历中处理这些情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用<c:if test=””>比较值时,有时从后台传递过来的值,是一个对象或者一个数组,亦或者一个使用某分割附连接起来的字符串等,

均需要处理后才能进行比较,以下为处理以及比较方式代码示例

若想对test中的值需要函数处理,可先在<c:set var=”” value=””>中使用函数处理,然后再将set的值赋予到test中即可;如下实现了将${temp.supplier}的值(suppValue)split(“/”)处理,得到数组idnameValue,,即实现了java中:

 suppValue.split(“/”)[0] == list.clientId 的比较

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

 

<c:forEach var="list" items="${clientList}">

<c:set var="idnameValue" value="${fn:split(temp.supplier,'/')}></c:set>

   <c:if test="${idnameValue[0] == list.clientId}">

   <option value="${temp.supplier}">${list.clientName}</option>

</c:if>

</c:forEach>

注:el表达式函数的使用方式见标题为“el表达式函数的用法”博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值