jstl以前在jsp页面截取字符串时都是用Java表达式,感觉在jsp页面用多了Java表达式不是很好(那时主要是不知道jstl标签怎么去截取字符串,所以就只能用Java表达式了)。今天在网上找了些相关资料,原来jstl标签是可以截取字符串的,主要有两种方法:
一、用jstl原有的标签库中方法(fn函数)
<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自定义函数 * */ 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目录下面对其进行配置:
<?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>
相关推荐
自己做的一个小例子,实现JSTL自定义标签。功能:输入x和y,点击按钮后循环输出y次x。
jstl 自定义标签 int转换为时间格式
这次整理自定义标签主要是项目的需要,要将一些写死的url信息配置于配置文件中,这样发版的时候改动起来相当方便
JSTL 以及自定义标签开发相关 JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out、set、remove、catch 2.流程控制标签:if、choose、when、otherwise 3.循环标签:forEach、forTokens 4.URL...
jstl自定义标签和函数思维导图
NULL 博文链接:https://zhouxianglh.iteye.com/blog/858182
这个压缩包里有我在学习JSTL自定义标签时写的一些自定义标签实例,如果你也在学JavaWeb技术,那么我相信这些源码会对你有帮助的
JSTL 开发自定义标签使用的jar jstl.jar standard.jar
jsp、jstl自定义标签实现的分页,实现的还是比较好的,没有在request、session等范围保存过数据,在pageContext范围内保存过集合的数据, 实现的方法还是比较简单的,适用性还是比较广的,我是实在是没分了,平时也...
EL、JSTL、自定义标签、过滤器的ppt
jh-plugins是一项基于JSTL的自定义标签(插件)库,致力于打造一处实现、任何项目通用的开源项目。 jh-plugins已实现标签库:分页 jh-plugins特点:高效、轻巧、简单、适用(可融合与任何B/S架构的java项目) jh-...
java中用到的jstl标签 ,大家都知道 jstl自定义标签的很多使用性 所以都喜欢用 但是有些找不到jar包的麻烦
本资源代码中包含jstl的标签库定义以及自定义EL标签使用的详细说明,参见压缩文件中说明即可,欢迎各位技术员下载参考及使用
JavaWeb-12:自定义标签库开发&JSTL标签库
JSTL标签库的使用是为类弥补html表的不足,规范自定义标签的使用而诞生的。在告别modle1模式开发应用程序后,人们开始注重软件的分层设计,不希望在jsp页面中出现java逻辑代码,同时也由于自定义标签的开发难度较大...
自己写的自定义标签库,实现JSTL常用的功能。
jstl 文档标准标签库JSTL – JSP Standard Tag Library,是JSP的标准标签库 自定义标签库 自定义函数
从JSP 1.1规范开始JSP就支持使用自定义标签,使用自定义标签大大降低了JSP页面的复杂度,同时增强了代码的重用性,因此自定义标签在WEB应用中被广泛使用。许多WEB应用厂商都开发出了自己的一套标签库提供给用户使用...
jstl标签包,用于jsp自定义标签,内包含jstl.jar standard.jar两个包