`

用jstl截取字符串

 
阅读更多

jstl以前在jsp页面截取字符串时都是用Java表达式,感觉在jsp页面用多了Java表达式不是很好(那时主要是不知道jstl标签怎么去截取字符串,所以就只能用Java表达式了)。今天在网上找了些相关资料,原来jstl标签是可以截取字符串的,主要有两种方法:

一、用jstl原有的标签库中方法(fn函数)

Html代码 复制代码 收藏代码
  1. <c:setvar="testStr"value="做一个截取字符串长度的测试"
  2. <c:choose>
  3. <c:whentest="${fn:length(testStr) > 10}">
  4. <c:outvalue="${fn:substring(testStr, 0, 10)}......"/>
  5. </c:when>
  6. <c:otherwise>
  7. <c:outvalue="${testStr}"/>
  8. </c:otherwise>
  9. </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代码:

Java代码 复制代码 收藏代码
  1. package com.uisk.util;
  2. /**
  3. * 定义EL自定义函数
  4. *
  5. */
  6. publicclass UFunction {
  7. /**
  8. * 获取一个字符串的长度
  9. *
  10. * @param str
  11. * @return int
  12. */
  13. publicstaticint getLen(String str) {
  14. return str.length();
  15. }
  16. /**
  17. * 截取字符串
  18. *
  19. * @param str
  20. * @param start
  21. * @param end
  22. * @return String
  23. */
  24. publicstatic String substr(String str, int start, int end) {
  25. return str.substring(start, end);
  26. }
  27. /**
  28. * 两数相除获取整数结果
  29. *
  30. * @param first
  31. * @param second
  32. * @return int
  33. */
  34. publicstaticint chufa(int first, int second) {
  35. return first / second;
  36. }
  37. }
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目录下面对其进行配置:

 

Html代码 复制代码 收藏代码
  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <taglibxmlns="http://java.sun.com/xml/ns/j2ee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
  5. version="2.0">
  6. <tlib-version>1.0</tlib-version>
  7. <short-name>len</short-name>
  8. <function>
  9. <description>calculate string length</description><!-- 对这个EL方法的描述 -->
  10. <name>getLen</name><!-- 调用EL方法的名称 -->
  11. <function-class>com.cw.common.UFunction</function-class>
  12. <function-signature>
  13. int getLen(java.lang.String)
  14. </function-signature>
  15. <example>${len:getLen(str)}</example><!-- 例如 -->
  16. </function>
  17. <function>
  18. <description>substring</description>
  19. <name>substr</name>
  20. <function-class>com.cw.common.UFunction</function-class>
  21. <function-signature>
  22. java.lang.String substr(java.lang.String,int,int)
  23. </function-signature>
  24. </function>
  25. <function>
  26. <description>chufa</description>
  27. <name>chufa</name>
  28. <function-class>com.cw.common.UFunction</function-class>
  29. <function-signature>int chufa(int,int)</function-signature>
  30. </function>
  31. </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>  

 

最后进行调用测试:

Html代码 复制代码 收藏代码
  1. <%@ page language="java"pageEncoding="gbk"%>
  2. <%@ taglib uri="http://java.sun.com/jsp/jstl/core"prefix="c"%>
  3. <%@ taglib uri="/WEB-INF/mytag.tld"prefix="myTag" %>
  4. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  5. <html>
  6. <body>
  7. <c:setvar="str"value="自定义函数,做一个截取字符串长度的测试"></c:set>
  8. 字条串"${str}"的长度是${myTag:getLen(str)}<br/>
  9. 字条串"${str}"截取前5个字符:${myTag:substr(str,0,5)}<br/>
  10. 5除以3取整数是:${myTag:chufa(5,3) }
  11. </body>
  12. </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>  

 

分享到:
评论

相关推荐

    (TAG标签)jstl和struts2标签截取字符串[文].pdf

    在使用jstl标签时,我们可以使用jstl原有的标签库中的方法来截取字符串。例如,我们可以使用`fn`函数来截取字符串的长度和内容。 ```jsp 做一个截取字符串长度的测试" /&gt; ${fn:length(testStr) &gt; 10}"&gt; ${fn:...

    jsp页面截取字符串

    JSP 页面实质上是 Java 代码的视图部分,因此可以使用 Java 的 String 类提供的方法来截取字符串。以下是一些常用的方法: - `substring(int beginIndex, int endIndex)`:此方法用于从字符串中提取子字符串。`...

    直接截取jstl长度控制字符串长短

    其中,`&lt;fn:substring&gt;`是JSTL中的一个非常实用的标签,用于截取字符串的指定部分。该标签通过指定起始位置和结束位置来截取字符串,从而实现对字符串长度的控制。 #### ${fn:substring(名称,0,23)} 此表达式表示...

    运用El表达式截取字符串/获取list的长度实例

    本文将深入探讨如何使用EL表达式来截取字符串以及获取List的长度。EL表达式通常与JSTL(JavaServer Pages Standard Tag Library)结合使用,提供了一系列的函数,如`fn:substring`和`fn:length`,来增强字符串和集合...

    JSTL 字符串处理函数

    截取字符串的一部分。可以指定起始位置和长度。例如: ```jsp ${fn:substring('Hello World', 0, 5)} &lt;!-- 输出:Hello --&gt; ``` 5. **fn:substringAfter** 返回在指定字符后的字符串部分。如: ```jsp ${fn:...

    jstl字符窜的截取

    在这个页面中,可能包含了使用JSTL进行字符串处理的逻辑,比如截取数据库查询结果中的某个字段以适应显示需求。通过学习和应用JSTL的字符串截取功能,开发者能够更高效地处理和展示数据,提高代码的可读性和可维护性...

    jstl 字符串处理函数

    此函数用于截取字符串的一部分。它有三个版本,支持根据开始位置和结束位置截取,或者根据结束位置截取到字符出现的位置,或者从字符出现的位置截取到字符串末尾。 使用示例: ```jsp ${fn:substring(zip, 6, -1)} ...

    自定义EL函数解决JSTL标签不足之处——按字节长度截取字符串

    做过大型网站前台的Web开发程序员最头疼的事情就是前台首页的布局,这其中最最头疼的就是标题字符的截取的问题,虽然有fn:substring,但表现率以及对中文的支持均不够完善,其实最终还是归结为客户要求太高了,不过...

    EL表达式截取字符串的函数说明

    ${fn:substring(你要截取的字符串),beginIndex,endIndex} 下面是JSTL中自带的方法列表以及其描述 函数名 函数说明 使用举例 fn:contains 判断字符串是否包含另外一个字符串 ${fn:contains(name,&gt; fn:...

    JSTL_fn标签 字符处理标签

    JSTL(JavaServer Pages Standard Tag Library)是一个用于简化JSP开发的标准标签库,其中的fn标签提供了一系列方便的字符串处理函数。这些函数使得在JSP页面中进行字符串操作更加简单,无需编写复杂的Java脚本。...

    JSTL自带语法,可对 el穿过来的参数进行处理 格式化或者处理字符串

    本文將重點介紹JSTL中的幾個常用函數,這些函數用於對EL表達式傳遞的參數進行格式化或處理字符串。 #### 1. `fn:contains(string, substring)` 該函數用於判斷指定的`string`是否包含`substring`,如果包含則返回`...

    jstl jar包

    例如,`fn:length()`可以计算数组或集合的长度,`fn:substring()`用于截取字符串等。 在描述中提到的"EL表达式(Expression Language)"是JSP 2.0引入的一种强大的脚本语言,用于在JSP页面中访问JavaBean或其他数据...

    jstl标签.rar

    `&lt;fn:length&gt;` 计算字符串或集合的长度,`&lt;fn:substring&gt;` 截取字符串的一部分,`&lt;fn:split&gt;` 将字符串分割成数组。 4. Sql库:对于需要进行数据库操作的场景,JSTL的sql库提供了执行SQL查询、处理结果集等功能。`...

    jstl_standard.rar

    - `substring`:截取字符串。 - `contains`:检查字符串是否包含特定子串。 - `indexOf` 和 `lastIndexOf`:查找子串的位置。 - `join`:将数组或列表连接成字符串。 4. **XML标签库 (xml)**:处理XML文档。 -...

    jstl and standard_JSTL_

    - `fn:substring()` 截取字符串的一部分。 使用JSTL的优点包括: - **代码分离**:JSTL使得页面逻辑和显示逻辑分离,提高了代码的可读性和可维护性。 - **减少脚本代码**:通过使用标签,可以减少JSP页面中的Java...

    jar包下载jstl

    - `fn:substring()`:截取字符串的一部分。 - `fn:indexOf()`:查找字符串中子串的位置。 **5. fmt标签集** fmt标签集用于处理日期、时间和数字的格式化,以及国际化。例如: - `&lt;fmt:formatDate&gt;`:格式化日期。 -...

    jstl参考手册大全.chm

    3. `fn:substring()` 截取字符串的一部分。 **I18N/Locale标签库**支持多语言和本地化功能,例如: 1. `&lt;fmt:message&gt;` 获取国际化资源中的消息。 2. `&lt;fmt:setBundle&gt;` 设置当前的资源包。 3. `&lt;fmt:formatDate&gt;` ...

    JSTL API.zip

    3. **fn**:函数库,提供了一些实用的字符串处理函数,如截取字符串、替换、检查空值等。 4. **xml**:XML处理标签库,用于解析和操作XML文档。 5. **sql**:SQL标签库,允许在JSP页面中执行数据库查询和操作。 **...

    JSTL函数JSTL函数

    这个函数用于截取字符串的特定部分。 12. `fn:substringAfter(string, delimiter)` 从`string`中`delimiter`字符之后的部分开始,返回一个新的字符串。这个函数在提取字符串中某个部分时很有用。 13. `fn:...

Global site tag (gtag.js) - Google Analytics