用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>
用jstl截取字符串的更多相关文章
- JSTL截取字符串
引入头文件支持<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> &l ...
- 使用jstl 截取字符串
时常碰见这样的 问题:获取数据库中的文本域的时候经常是在p标签中的,在页面显示的时候也是带着p标签,如何去除p标签呢 这里提供一个使用jstl的方式 1.首先导入jstl的函数标签库 <%@ t ...
- JSTL截取字符串以及格式化时间
fn函数里面有很多好用的方法 <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions& ...
- 只显示 前100个字 java 实现截取字符串!使用! <c:if test="${fn:length(onebeans.info)>100 }">${ fn:substri
博客 文章 只显示 前100个字 java 实现截取字符串!使用! <c:if test="${fn:length(onebeans.info)>100 }">$ ...
- EL表达式中如何截取字符串
EL表达式中如何截取字符串 可以截取,用fn函数:<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/ ...
- jstl 处理字符串函数 substring spli等
在jstl中的fn标签也是我们在网页设计中经常要用到的很关键的标签,在使用的时候要先加上头 <%@ taglib uri="http://java.sun.com/jsp/jstl/f ...
- ThinkPHP 模板substr的截取字符串函数
ThinkPHP 模板substr的截取字符串函数在Common/function.php加上以下代码 /** ** 截取中文字符串 **/ function msubstr($str, $start ...
- shell编程常用的截取字符串操作
1. 常用的字符串操作 1.1. 替换字符串:$ echo ${var/ /_}#支持正怎表达式 / /表示搜索到第一个替换,// /表示搜索到的结果全部替换. ...
- [No0000A4]DOS命令(cmd)批处理:替换字符串、截取字符串、扩充字符串、获取字符串长度
1.替换字符串,即将某一字符串中的特定字符或字符串替换为给定的字符串.举例说明其功能:========================================= @echo off set a ...
随机推荐
- javascript 面向对象编程指南 的一些题目
1. function C () { this.a = 1; return false; } console.log (typeof new C()); object function C () { ...
- 动端逐渐出了许多的移动端的框架,比如Sencha Touch、JQTouch、Jquery-moblie、jqMobi等等。这些框架都有优缺点,不同的框架应用在不同的项目中。现简单阐述一下各框架的优缺点:
移动前端工作的那些事---前端制作之微信小技巧篇 (2013-11-15 15:20) 转载▼ 标签: it css3/javascript html5 webapp 手机网站搭建 分类: 前端制 ...
- C# XSD校验XML文件的代码
/// <summary> /// XSD文件校验XML /// </summary> /// <returns></returns> public A ...
- LinQ 基础
LinQ全名:Linq to Sql,是一种数据库访问技术 常见的数据库访问技术: 1.ADO.NET 2.Entity Framework 框架 3.LinQ LinQ是高集成化的数据访问类,它会 ...
- 【C#】 一些不常用,很容易混淆的知识点
[C#] 一些不常用但很容易混淆的知识点 1. 访问修饰符 internal ,译为内部的, 在同一个程序集中可访问,它的内部是相对与程序集的,可不能想当然了 2. String.Compare 这个 ...
- 济南学习D2T1__折纸带
他[问题描述]一张长度为n的纸带,我们可以从左至右编号为0 −n(纸带最左端标号为0) .现在有m次操作,每次将纸带沿着某个位置进行折叠,问所有操作之后纸带的长度是多少.[输入格式]第一行两个数字n, ...
- lr_convert_string_encoding()转码函数
例子:
- MRP生产计划模式在多品种小批量生产过程中遭遇挑战
传统的MPS主生产计划和MRP物料需求计划的方式,已很难适应按需生产环境,很多企业正在转向按需生产环境,按需生产的最大的挑战是模拟计算CTP可以承诺交期.准时交货和应对不确定的插单等变化.不仅需要订单 ...
- $watch监听数据变化和run方法
angular中$watch方法可以监听数据的变化. $scope.$watch('phone',function(){ $scope.phone.fre = $scope.phone.num> ...
- coreseek实战(二):windows下mysql数据源部分配置说明
coreseek实战(二):windows下mysql数据源部分配置说明 关于coreseek在windows使用mysql数据源的配置,以及中文分词的详细说明,请参考官方文档: mysql数据源配置 ...