EL自定义函数
程序员文章站
2022-03-21 14:23:25
...
jstl自带的标签有时候可以满足不了我们的需求,这时我们就要用到自定义函数。。。
新建一个类,定义好所需要的方法。。。
再建一个tld文件放在WEB-INF目录下面对其进行配置,
最后一步就是调用了
新建一个类,定义好所需要的方法。。。
package com.cw.common; /** * 定义EL自定义函数 * * @author:陈伟 * @date:2008-5-15 * */ public class UFunction { /** * 获取一个字符串的长度 * * @author 陈伟 * @date 2008-5-15 * @param str * @return int */ public static int getLen(String str) { return str.length(); } /** * 截取字符串 * * @author 陈伟 * @date 2008-5-15 * @param str * @param start * @param end * @return String */ public static String substr(String str, int start, int end) { return str.substring(start, end); } /** * 两数相除获取整数结果 * * @author 陈伟 * @date 2008-5-15 * @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/jstl/core_rt" 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="1111111111111111111111111111"></c:set> 字条串"${str}"的长度是${myTag:getLen(str)}<br/> 字条串"${str}"截取前5个字符:${myTag:substr(str,0,5)}<br/> 5除以3取整数是:${myTag:chufa(5,3) } </body> </html>
上一篇: 一条SQL插入多条数据