专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 教你使用JSTL截取字符串

教你使用JSTL截取字符串

更新时间:2022-07-18 11:33:23 来源:动力节点 浏览533次

jstl标签可以拦截字符串。主要有两种方法:

1.使用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>

注意:记得引用jstl标签库

2.自定义功能

有时候jstl自带的标签可能不能满足我们的需求。这时候,我们就需要使用自定义函数了。创建一个新类并定义所需的方法:

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" 前缀="c"%>  
<%@ taglib uri="/WEB-INF/mytag.tld" 前缀="myTag" %>     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 过渡//EN">     
<html>     
   <正文>     
     <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))            
   </正文>     
</html>    

以上就是关于“教你使用JSTL截取字符串”的介绍,大家如果想了解更多相关知识,可以关注一下动力节点的JSTL标签库教程,里面有更丰富的知识等着大家去学习,相信对大家一定会有所帮助的。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>