EL自定义函数

jstl自带的标签有时候可以满足不了我们的需求,这时我们就要用到自定义函数。。。
新建一个类,定义好所需要的方法。。。
  1. package com.cw.common;   
  2.   
  3. /**  
  4.  * 定义EL自定义函数  
  5.  *   
  6.  * @author:陈伟  
  7.  * @date:2008-5-15  
  8.  *   
  9.  */  
  10. public class UFunction {   
  11.   
  12.     /**  
  13.      * 获取一个字符串的长度  
  14.      *   
  15.      * @author 陈伟  
  16.      * @date 2008-5-15  
  17.      * @param str  
  18.      * @return int  
  19.      */  
  20.     public static int getLen(String str) {   
  21.         return str.length();   
  22.     }   
  23.   
  24.     /**  
  25.      * 截取字符串  
  26.      *   
  27.      * @author 陈伟  
  28.      * @date 2008-5-15  
  29.      * @param str  
  30.      * @param start  
  31.      * @param end  
  32.      * @return String  
  33.      */  
  34.     public static String substr(String str, int start, int end) {   
  35.         return str.substring(start, end);   
  36.     }   
  37.   
  38.     /**  
  39.      * 两数相除获取整数结果  
  40.      *   
  41.      * @author 陈伟  
  42.      * @date 2008-5-15  
  43.      * @param first  
  44.      * @param second  
  45.      * @return int  
  46.      */  
  47.     public static int chufa(int first, int second) {   
  48.         return first / second;   
  49.     }   
  50. }  

再建一个tld文件放在WEB-INF目录下面对其进行配置,

  1. <?xml version="1.0" encoding="UTF-8"?>   
  2. <taglib xmlns="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.   
  18.     <function>   
  19.         <description>substring</description>   
  20.         <name>substr</name>   
  21.         <function-class>com.cw.common.UFunction</function-class>   
  22.         <function-signature>   
  23.             java.lang.String substr(java.lang.String,int,int)   
  24.         </function-signature>   
  25.     </function>   
  26.   
  27.     <function>   
  28.         <description>chufa</description>   
  29.         <name>chufa</name>   
  30.         <function-class>com.cw.common.UFunction</function-class>   
  31.         <function-signature>int chufa(int,int)</function-signature>   
  32.     </function>   
  33. </taglib>  

最后一步就是调用了

  1. <%@ page language="java" pageEncoding="gbk"%>   
  2. <%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>   
  3. <%@ taglib uri="/WEB-INF/mytag.tld" prefix="myTag" %>   
  4.   
  5. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">   
  6. <html>   
  7.   <body>   
  8.     <c:set var="str" value="1111111111111111111111111111"></c:set>   
  9.     字条串"${str}"的长度是${myTag:getLen(str)}<br/>   
  10.     字条串"${str}"截取前5个字符:${myTag:substr(str,0,5)}<br/>   
  11.     5除以3取整数是:${myTag:chufa(5,3) }   
  12.      
  13.   </body>   
  14. </html>  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值