用jstl截取字符串

 

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

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

      
          
              
          
         
            
          
      


 

注:记得要引用标签库
        <%@ 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目录下面对其进行配置:

 

   
   
     1.0   
     len   
        
         calculate string length   
         getLen   
         com.cw.common.UFunction   
            
            int getLen(java.lang.String)   
            
         ${len:getLen(str)}   
        
  
        
         substring   
         substr   
         com.cw.common.UFunction   
            
             java.lang.String substr(java.lang.String,int,int)   
            
        
  
        
         chufa   
         chufa   
         com.cw.common.UFunction   
         int chufa(int,int)   
        
  


最后进行调用测试:

<%@ page language="java" pageEncoding="gbk"%>   
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="/WEB-INF/mytag.tld" prefix="myTag" %>   
  
   
   
      
        
     字条串"${str}"的长度是${myTag:getLen(str)}
字条串"${str}"截取前5个字符:${myTag:substr(str,0,5)}
5除以3取整数是:${myTag:chufa(5,3) }


 

你可能感兴趣的:(string,function,java,html,jsp,encoding)