<c:forEach items="${dataList}" var="item" varStatus="itemStatus">
${fn:substring(item.STORE_NAME,0,8)}...
</c:forEach>

截取前面8个字符,后面的用点号代替,网上有用css样式实现的,但在跨浏览器方面有问题.

JSTL对String的常用操作API

------------------------以下内容为转载---------------

***********截取一定长度字符串*****************/
在应用程序开发中,如果内容过长,想截取一定长度字符,然后补充"....."
jstl1.1引入了一个fn.tld的标签,用于处理字符,如获得字符length,substring,indexof,endWith,lowcase
实现截取字符串
如:
<c:set var="log.logTitle" value="做一个截取字符串长度的测试"
<c:choose>
<c:when test="${fn:length(log.logTitle) > 10}">
<c:out value="${fn:substring(log.logTitle, 0, 10)}......" />
</c:when>
<c:otherwise>
<c:out value="${log.logTitle}" />
</c:otherwise>
</c:choose>

/*****************截取一定长度字符串***************/

JSTL使用表达式来简化页面的代码,这对一些标准的方法,例如bean的 getter/setter方法,请求参数或者context以及 session中的数据的访问非常方便,但是我们在实际应用中经常需要在页面调用对象的某些方法,例如我需要调用字符串的length方法来获取字符串的长度时,在以往的开发过程中我们必须把对象先转为String类,然后在调用其length方法,这样的代码繁琐而且容易出错。

因此JSTL内置了几个用于字符串操作的方法,可以直接在表达式中使用,大大的简化了代码,提供代码的可读性。在JSTL的表达是中要使用一个函数,其格式如下

${ns:methodName(args....)}

在使用这些函数之前必须在JSP中引入标准函数的声明

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

下面是JSTL中自带的方法列表以及其描述

函数名
函数说明
使用举例

contains
判断字符串是否包含另外一个字符串
<c:if test="${fn:contains(name, searchString)}">

containsIgnoreCase
判断字符串是否包含另外一个字符串( 大小写无关)
<c:if test="${fn:containsIgnoreCase(name, searchString)}">

endsWith
判断字符串是否以另外字符串结束
<c:if test="${fn:endsWith(filename, ".txt")}">

escapeXml
把一些字符转成XML 表示,例如< 字符应该转为&lt;
${fn:escapeXml(param:info)}

indexOf
子字符串在母字符串中出现的位置
${fn:indexOf(name, "-")}

join
将数组中的数据联合成一个新字符串,并使用指定字符格开
${fn:join(array, ";")}

length
获取字符串的长度,或者数组的大小
${fn:length(shoppingCart.products)}

replace
替换字符串中指定的字符
${fn:replace(text, "-", "•")}

split
把字符串按照指定字符切分
${fn:split(customerNames, ";")}

startsWith
判断字符串是否以某个子串开始
<c:if test="${fn:startsWith(product.id, "100-")}">

substring
获取子串
${fn:substring(zip, 6, -1)}

substringAfter
获取从某个字符所在位置开始的子串
${fn:substringAfter(zip, "-")}

substringBefore
获取从开始到某个字符所在位置的子串
${fn:substringBefore(zip, "-")}

toLowerCase
转为小写
${fn.toLowerCase(product.name)}

toUpperCase
转为大写字符
${fn.UpperCase(product.name)}

trim
去除字符串前后的空格
${fn.trim(name)}

JSTL中c:forEach循环里的值的substr操作及对String操作的常用API的更多相关文章

  1. 为什么阿里巴巴Java开发手册中强制要求不要在foreach循环里进行元素的remove和add操作?

    在阅读<阿里巴巴Java开发手册>时,发现有一条关于在 foreach 循环里进行元素的 remove/add 操作的规约,具体内容如下: 错误演示 我们首先在 IDEA 中编写一个在 f ...

  2. foreach循环里不能remove/add元素的原理

    foreach循环 ​    foreach循环(Foreach loop)是计算机编程语言中的一种控制流程语句,通常用来循环遍历数组或集合中的元素.Java语言从JDK 1.5.0开始引入forea ...

  3. 不要在 foreach 循环里进行元素的 remove/add 操作。remove 元素请使用 Iterator 方式,如果并发操作,需要对 Iterator 对象加锁

    不要在 foreach 循环里进行元素的 remove/add 操作.remove 元素请使用 Iterator 方式,如果并发操作,需要对 Iterator 对象加锁. 正例: Iterator&l ...

  4. 集合中的 for-Each循环

     数组的加强型的for-Each循环很简单,我们再来看一下集合中的for-Each 循环又是怎么样的.我们都知道集合中的遍历都是通过迭代(iterator)完成的.也许有人说,也可以按照下面的方式来遍 ...

  5. JSTL 中<c:forEach>使用

    <c:forEach 详解 博客分类: JSTL   <c:forEach>标签用于通用数据循环,它有以下属性 属 性 描 述 是否必须 缺省值 items 进行循环的项目 否 无 ...

  6. 为什么阿里巴巴禁止在 foreach 循环里进行元素的 remove/add 操作--java.util.ConcurrentModificationException

    摘要 foreach循环(Foreach loop)是计算机编程语言中的一种控制流程语句,通常用来循环遍历数组或集合中的元素. 在阿里巴巴Java开发手册中,有这样一条规定: 但是手册中并没有给出具体 ...

  7. 为什么禁止在 foreach 循环里进行元素的 remove/add 操作

    首先看下边一个例子,展示了正确的做法和错误的错发: 这是为什么呢,具体原因下面进行详细说明: 1.foreach循环(Foreach loop)是计算机编程语言中的一种控制流程语句,通常用来循环遍历数 ...

  8. 有关集合的foreach循环里的add/remove

    转自:Hollis(微信号:hollischuang) 在阿里巴巴Java开发手册中,有这样一条规定: 但是手册中并没有给出具体原因,本文就来深入分析一下该规定背后的思考. 1 .foreach循环 ...

  9. php中的foreach改变数组的值的问题

    翻到PHP文档的foreach那页这样写道: “foreach 语法结构提供了遍历数组的简单方式.foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误 ...

随机推荐

  1. 在win7下安装VC6.0

    一.以系统管理员的身份执行VC6.0安装文件 二.在安装或者使用VisualC++6.0时,凡是出现兼容性问题提示对话框,一律按下面方式处理--把"不再显示此消息"打上勾,然后选择 ...

  2. 报错:不允许保存更改。您所做的更改要求删除并重新创建以下表……

    在使用SQL Server 2008为某个表添加列的时候出现启用了"阻止保存要求重新创建表的更改问题的设置方法..."报错:   解决方法: 工具--选项--Designers-- ...

  3. 21扩展IEnumerable<T>泛型接口自定义LINQ的扩展方法

    LINQ方法实际上是对IEnumerable<TSource>的扩展,如图:   本篇自定义一个MyWhere方法,达到与Where相同的效果.     使用LINQ自带的Where方法 ...

  4. iOS内存优化及排查方法

    1.IBOutlet 对象需要release 2.不停的往UIView,特别是UIScrollView上add相同SubView.一定要记得清除之前的SubView,并且在dealloc函数中执行该方 ...

  5. JSONObject以及json(转)

    一.JAR包简介      要使程序 可以运行 必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包:      1.commons-lang.jar      2.commons- ...

  6. Excel向上取整

    CEILING函数语法:CEILING(number,significance)

  7. Visual Studio 2017 简体中文企业正式版全量离线安装包下载地址

    Visual Studio 2017 简体中文企业正式版全量离线安装包下载地址:magnet:?xt=urn:btih:199993649B1834C50FE7BDD204502CC23C7A4611 ...

  8. wireshark抓取本地回环及其问题

    一:The NPF driver isn't running 这个错误是因为没有开启NPF服务造成的. NPF即网络数据包过滤器(Netgroup Packet Filter,NPF)是Winpcap ...

  9. C预编译, 预处理, C/C++头文件, 编译控制,

    在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作.#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的 ...

  10. 【BZOJ】【2502】清理雪道

    网络流/上下界网络流 带下界的最小可行流…… 我SB了,跑网络流的时候是得从虚拟源0往出跑……而不是S…… Orz Hzwer /*********************************** ...