JSTL判断一个list集合里是否包含某个字符串详解编程语言
2023-06-13 09:20:47 时间
今天在写一个需求时,在jsp页面中要判断servlet带过来的 list 集合中是否包含某个字符串,如果包含则执行某种操作,如果不包含则执行另一种操作。起初用的是JSTL标签里 fn:contains标签,但却不能达到我的要求。最后查阅资料,总算找到了解决方法。
首先;fn:contains标签的作用是:判断一个输入字符串是否包含一个指定的子串。即该标签内部的实现原理是“包含”,而不是我们所需要的equals(即等于)。虽然在JavaSE 中 List 集合的确有一个contains方法,用来判断一个list集合里是否包含某个元素,但是在JSTL中contain确实完全不同的,所以,我们为了实现上面的需求,就不能使用fn:contains,而是使用 c:foreach标签来穷举实现判断是否包含。一下给出示例代码。
首先:错误的实现list集合是否包含的代码原型:
c:choose c:when test="${fn:contains(requestScope.list,2013) } " script type="text/javascript" alert("包含2013"); /script /c:when c:otherwise script type="text/javascript" alert("没有包含2013!"); /script /c:otherwise /c:choose
然后是使用c:foreach实现判断是否包含的正确代码:
c:set var="contains" value="no" / c:forEach var="list" items="${requestScope.list }" begin="0" end="${fn:length(list)}" c:if test="${list == 2013 }" c:set var="contains" value="yes" / /c:if /c:forEach c:choose c:when test="${contains==yes }" script type="text/javascript" alert("包含2013"); /script /c:when c:otherwise script type="text/javascript" alert("没有包含2013!"); /script /c:otherwise /c:choose
其中 在循环之前使用的c:set标签充当的是一个标志位的作用,如果不使用的话,可能会时代码重复执行。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/16372.html
cjava相关文章
- javaint数组转list集合_数组转int
- String转JsonArray转List[通俗易懂]
- unable to access android sdk add-on list解决方案[通俗易懂]
- 【Java集合框架】篇三:List接口
- 采用java8 lambda表达式 实现 java list 交集 并集 差集 去重复并集
- 【测试开发】python系列教程: 标准数据类型(三)List(列表)
- 数据库查询出的数据list 集合,转为json 的形式存到redis
- list java中List对象通用排序算法详解编程语言
- EL表达式获取List集合长度详解编程语言
- java集合框架之List接口详解编程语言
- Java中对List集合的常用操作详解编程语言
- List集合分组实现教程详解编程语言
- 利用Redis实现List元素的排序(redis排序list)
- 长度查看Redis List长度:简单有效(redis查看list)
- 利用Redis构建新的List存储方式(redis存储list)
- Redis中的List数据结构详解(redis中list数据)
- 实现使用List实现Redis队列(redis队列用list)
- Redis实现高效的List读取(redis读list)