jstl以前在jsp页面截取字符串时都是用Java表达式,感觉在jsp页面用多了Java表达式不是很好(那时主要是不知道jstl标签怎么去截取字符串,所以就只能用Java表达式了)。今天在网上找了些相关资料,原来jstl标签是可以截取字符串的,主要有两种方法:
一、用jstl原有的标签库中方法(fn函数)
- <c:setvar="testStr"value="做一个截取字符串长度的测试"
- <c:choose>
- <c:whentest="${fn:length(testStr) > 10}">
- <c:outvalue="${fn:substring(testStr, 0, 10)}......"/>
- </c:when>
- <c:otherwise>
- <c:outvalue="${testStr}"/>
- </c:otherwise>
- </c:choose>
<c:set var="testStr" value="做一个截取字符串长度的测试" <c:choose> <c:when test="${fn:length(testStr) > 10}"> <c:out value="${fn:substring(testStr, 0, 10)}......" /> </c:when> <c:otherwise> <c:out value="${testStr}" /> </c:otherwise> </c:choose>
注:记得要引用标签库
<%@ taglib uri="http://java.sun.com/jsp/jstl/core"prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
二、自定义函数
jstl自带的标签有时候可能满足不了我们的需求,这时我们就要用到自定义函数。
新建一个类,定义好所需要的方法:
Java代码:
- package com.uisk.util;
- /**
- * 定义EL自定义函数
- *
- */
- publicclass UFunction {
- /**
- * 获取一个字符串的长度
- *
- * @param str
- * @return int
- */
- publicstaticint getLen(String str) {
- return str.length();
- }
- /**
- * 截取字符串
- *
- * @param str
- * @param start
- * @param end
- * @return String
- */
- publicstatic String substr(String str, int start, int end) {
- return str.substring(start, end);
- }
- /**
- * 两数相除获取整数结果
- *
- * @param first
- * @param second
- * @return int
- */
- publicstaticint chufa(int first, int second) {
- return first / second;
- }
- }
package com.uisk.util; /** * 定义EL自定义函数 * */ public class UFunction { /** * 获取一个字符串的长度 * * @param str * @return int */ public static int getLen(String str) { return str.length(); } /** * 截取字符串 * * @param str * @param start * @param end * @return String */ public static String substr(String str, int start, int end) { return str.substring(start, end); } /** * 两数相除获取整数结果 * * @param first * @param second * @return int */ public static int chufa(int first, int second) { return first / second; } }
再建一个tld文件放在WEB-INF目录下面对其进行配置:
- <?xmlversion="1.0"encoding="UTF-8"?>
- <taglibxmlns="http://java.sun.com/xml/ns/j2ee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
- version="2.0">
- <tlib-version>1.0</tlib-version>
- <short-name>len</short-name>
- <function>
- <description>calculate string length</description><!-- 对这个EL方法的描述 -->
- <name>getLen</name><!-- 调用EL方法的名称 -->
- <function-class>com.cw.common.UFunction</function-class>
- <function-signature>
- int getLen(java.lang.String)
- </function-signature>
- <example>${len:getLen(str)}</example><!-- 例如 -->
- </function>
- <function>
- <description>substring</description>
- <name>substr</name>
- <function-class>com.cw.common.UFunction</function-class>
- <function-signature>
- java.lang.String substr(java.lang.String,int,int)
- </function-signature>
- </function>
- <function>
- <description>chufa</description>
- <name>chufa</name>
- <function-class>com.cw.common.UFunction</function-class>
- <function-signature>int chufa(int,int)</function-signature>
- </function>
- </taglib>
<?xml version="1.0" encoding="UTF-8"?> <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" version="2.0"> <tlib-version>1.0</tlib-version> <short-name>len</short-name> <function> <description>calculate string length</description><!-- 对这个EL方法的描述 --> <name>getLen</name><!-- 调用EL方法的名称 --> <function-class>com.cw.common.UFunction</function-class> <function-signature> int getLen(java.lang.String) </function-signature> <example>${len:getLen(str)}</example><!-- 例如 --> </function> <function> <description>substring</description> <name>substr</name> <function-class>com.cw.common.UFunction</function-class> <function-signature> java.lang.String substr(java.lang.String,int,int) </function-signature> </function> <function> <description>chufa</description> <name>chufa</name> <function-class>com.cw.common.UFunction</function-class> <function-signature>int chufa(int,int)</function-signature> </function> </taglib>
最后进行调用测试:
- <%@ page language="java"pageEncoding="gbk"%>
- <%@ taglib uri="http://java.sun.com/jsp/jstl/core"prefix="c"%>
- <%@ taglib uri="/WEB-INF/mytag.tld"prefix="myTag" %>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <body>
- <c:setvar="str"value="自定义函数,做一个截取字符串长度的测试"></c:set>
- 字条串"${str}"的长度是${myTag:getLen(str)}<br/>
- 字条串"${str}"截取前5个字符:${myTag:substr(str,0,5)}<br/>
- 5除以3取整数是:${myTag:chufa(5,3) }
- </body>
- </html>
<%@ page language="java" pageEncoding="gbk"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib uri="/WEB-INF/mytag.tld" prefix="myTag" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <body> <c:set var="str" value="自定义函数,做一个截取字符串长度的测试"></c:set> 字条串"${str}"的长度是${myTag:getLen(str)}<br/> 字条串"${str}"截取前5个字符:${myTag:substr(str,0,5)}<br/> 5除以3取整数是:${myTag:chufa(5,3) } </body> </html>
相关推荐
在使用jstl标签时,我们可以使用jstl原有的标签库中的方法来截取字符串。例如,我们可以使用`fn`函数来截取字符串的长度和内容。 ```jsp 做一个截取字符串长度的测试" /> ${fn:length(testStr) > 10}"> ${fn:...
JSP 页面实质上是 Java 代码的视图部分,因此可以使用 Java 的 String 类提供的方法来截取字符串。以下是一些常用的方法: - `substring(int beginIndex, int endIndex)`:此方法用于从字符串中提取子字符串。`...
其中,`<fn:substring>`是JSTL中的一个非常实用的标签,用于截取字符串的指定部分。该标签通过指定起始位置和结束位置来截取字符串,从而实现对字符串长度的控制。 #### ${fn:substring(名称,0,23)} 此表达式表示...
本文将深入探讨如何使用EL表达式来截取字符串以及获取List的长度。EL表达式通常与JSTL(JavaServer Pages Standard Tag Library)结合使用,提供了一系列的函数,如`fn:substring`和`fn:length`,来增强字符串和集合...
截取字符串的一部分。可以指定起始位置和长度。例如: ```jsp ${fn:substring('Hello World', 0, 5)} <!-- 输出:Hello --> ``` 5. **fn:substringAfter** 返回在指定字符后的字符串部分。如: ```jsp ${fn:...
在这个页面中,可能包含了使用JSTL进行字符串处理的逻辑,比如截取数据库查询结果中的某个字段以适应显示需求。通过学习和应用JSTL的字符串截取功能,开发者能够更高效地处理和展示数据,提高代码的可读性和可维护性...
此函数用于截取字符串的一部分。它有三个版本,支持根据开始位置和结束位置截取,或者根据结束位置截取到字符出现的位置,或者从字符出现的位置截取到字符串末尾。 使用示例: ```jsp ${fn:substring(zip, 6, -1)} ...
做过大型网站前台的Web开发程序员最头疼的事情就是前台首页的布局,这其中最最头疼的就是标题字符的截取的问题,虽然有fn:substring,但表现率以及对中文的支持均不够完善,其实最终还是归结为客户要求太高了,不过...
${fn:substring(你要截取的字符串),beginIndex,endIndex} 下面是JSTL中自带的方法列表以及其描述 函数名 函数说明 使用举例 fn:contains 判断字符串是否包含另外一个字符串 ${fn:contains(name,> fn:...
JSTL(JavaServer Pages Standard Tag Library)是一个用于简化JSP开发的标准标签库,其中的fn标签提供了一系列方便的字符串处理函数。这些函数使得在JSP页面中进行字符串操作更加简单,无需编写复杂的Java脚本。...
本文將重點介紹JSTL中的幾個常用函數,這些函數用於對EL表達式傳遞的參數進行格式化或處理字符串。 #### 1. `fn:contains(string, substring)` 該函數用於判斷指定的`string`是否包含`substring`,如果包含則返回`...
例如,`fn:length()`可以计算数组或集合的长度,`fn:substring()`用于截取字符串等。 在描述中提到的"EL表达式(Expression Language)"是JSP 2.0引入的一种强大的脚本语言,用于在JSP页面中访问JavaBean或其他数据...
`<fn:length>` 计算字符串或集合的长度,`<fn:substring>` 截取字符串的一部分,`<fn:split>` 将字符串分割成数组。 4. Sql库:对于需要进行数据库操作的场景,JSTL的sql库提供了执行SQL查询、处理结果集等功能。`...
- `substring`:截取字符串。 - `contains`:检查字符串是否包含特定子串。 - `indexOf` 和 `lastIndexOf`:查找子串的位置。 - `join`:将数组或列表连接成字符串。 4. **XML标签库 (xml)**:处理XML文档。 -...
- `fn:substring()` 截取字符串的一部分。 使用JSTL的优点包括: - **代码分离**:JSTL使得页面逻辑和显示逻辑分离,提高了代码的可读性和可维护性。 - **减少脚本代码**:通过使用标签,可以减少JSP页面中的Java...
- `fn:substring()`:截取字符串的一部分。 - `fn:indexOf()`:查找字符串中子串的位置。 **5. fmt标签集** fmt标签集用于处理日期、时间和数字的格式化,以及国际化。例如: - `<fmt:formatDate>`:格式化日期。 -...
3. `fn:substring()` 截取字符串的一部分。 **I18N/Locale标签库**支持多语言和本地化功能,例如: 1. `<fmt:message>` 获取国际化资源中的消息。 2. `<fmt:setBundle>` 设置当前的资源包。 3. `<fmt:formatDate>` ...
3. **fn**:函数库,提供了一些实用的字符串处理函数,如截取字符串、替换、检查空值等。 4. **xml**:XML处理标签库,用于解析和操作XML文档。 5. **sql**:SQL标签库,允许在JSP页面中执行数据库查询和操作。 **...
这个函数用于截取字符串的特定部分。 12. `fn:substringAfter(string, delimiter)` 从`string`中`delimiter`字符之后的部分开始,返回一个新的字符串。这个函数在提取字符串中某个部分时很有用。 13. `fn:...