用jstl截取字符串
2019独角兽企业重金招聘Python工程师标准>>>
用jstl截取字符串
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>
<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;
- }
- }
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>
<?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: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>
转载于:https://my.oschina.net/hokkaido/blog/103736
用jstl截取字符串相关推荐
- jstl 处理字符串函数 substring spli等
在jstl中的fn标签也是我们在网页设计中经常要用到的很关键的标签,在使用的时候要先加上头 <%@ taglib uri="http://java.sun.com/jsp/jstl/f ...
- java中截取后几位字符串_java截取字符串后几位
java中常用的字符串的截取方法_计算机软件及应用_IT/计算机_专业资料.jsp中常见使用技术,js,jstl,eclipse,java 1.length() 字符串的长度 例:char chars ...
- java 比较字符串前几位_java截取字符串前几位
java截取字符串_IT/计算机_专业资料.java截取字符串 1根据字符串 S... java中常用的字符串的截取方法_计算机软件及应用_IT/计算机_专业资料.jsp中常见使用技术,js,jstl ...
- Excel中如何截取字符串中指定字符后的部分字符
1.如何给某列属性为时间整体加一个时间值: 场景一:假如我有一个excel中的某一列如下图所示,如何将该列的时间(用B代替整列)整体加一分钟呢?方法很简单,在空白单元格填写时间格式图中A所示:复制单元 ...
- CSS截取字符串,兼容浏览器
今天在经典论坛看到有同学问到CSS截取字符多余省略号代替的求助且要兼容FF... 这个的确是个比较头痛的问题,现在我在的公司都是程序截取显示省略符的.兼容是没问题,但在中文和数学或字母混排时,就会有点 ...
- Swift4 String截取字符串
var str1 = "AlexanderYeah";// 1 截取字符串的第一种方式 // prefix 截取前3个字符串 var str2 = str1.prefix(3); ...
- smarty_modifier_truncate,无或者有md_substr的情况下都能正确截取字符串的php函数,可用于smarty。...
smarty_modifier_truncate,无或者有md_substr的情况下都能正确截取字符串的php函数,可用于smarty. function smarty_modifier_trunca ...
- ASP.NET技巧:两个截取字符串的实用方法
两个截取字符串的实用方法(超过一定长度自动换行) 1/** <summary> 2 /// 截取字符串,不限制字符串长度 3 /// </summary& ...
- Java --循环截取字符串
2019独角兽企业重金招聘Python工程师标准>>> 最近做工程时,遇到需要循环截取字符串的情况,写一篇日记,记录处理方法. 需求 从数据库取回来的数据格式如下: 西南-零起点-香 ...
最新文章
- Spring学习-理解IOC和依赖注入
- Unity3D开发——LeRunning的人物角色信息的显示
- keras faster物体检测_URPC 2019水下目标检测竞赛冠军方案:多图像融合增强
- C语言归并排序Merge Sort算法(附完整源码)
- php设计模式之——建造者模式
- docker 常用命令(1)
- Apache日志配置
- android媒体播放框架,Android 使用超简单的多媒体播放器JiaoZiVideoPlayer
- python变量声明语句_python – 在条件语句中声明变量有问题吗?
- 【实操手册】一篇文章教你快速开始使用视频点播
- Solr删除managedschema
- Host-Only(仅主机模式)
- JS讲解跟遇到的问题
- MySQL将一张表的某些列数据,复制到另外一张表,并且修改某些内容
- 《Android NFC 开发实战详解 》简介+源码+样章+勘误ING
- trucksim安装教程
- PowerBuilder 2017R3安装指南2021最新
- SnowNLP——SnowNLP是什么及SnowNLP的使用示例
- java——7个小案例
- 基本农田卫星地图查询_天地图山东,购房者勘测利器,国产骄傲