JSTL fn函数库
使用时必须引入:
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> * fn:contains(m,n) 如果参数m中包含参数n,返回true * fn:containsIgnoreCase(m,n) 同上,不区分大小写 * fn:endsWith(m,n) 如果参数m以参数n结尾,返回true * fn:escapeXml(m) 将有特殊意义的xml和html转换为对应的xml,并返回 * fn:indexOf(m,n) 返回参数n在参数m中第一次出现的位置 * fn:join(m,n) 讲一个给定的数组m用给定的间隔符n串在一起,并返回该字符串 * fn:length(item) 返回参数item包含元素的数量,数组,集合或者String,string返回字符数 * fn:replace(m,b,a)返回一个string,用参数a字符串替换m中所有的b,并将替换后的结果返回 * fn:split(m,n) 以参数n为分隔符分割参数m,分割后的每一部分就是数组的一个元素 * fn:startsWith(m,n) 如果参数m以参数n开头,返回true * fn:substring(m,b,e) 从b开始截取字符串m,截取到e,包含e的位置 * fn:substringAfter(m,n) 返回n在参数m中后面的那一部分字符串 * fn:substringBefore(m,n) 返回参数n在参数m中前面的那一部分字符串 * fn:toLowerCase(m) 将参数m所有的字符变为小写,并将其返回 * fn:toUpperCase(m) 将m所有的字符变为小写并返回 * fn:trim(m) 去除参数m首尾的空格并返回
EL自定义函数
EL自定义函数开发步骤
* 编写EL自定义函数映射的java方法
* 此方法必须是public static类型的方法
* 编写标签库描述文件(tld文件),在tld文件中建立关系,并描述自定义函数
<descripttion>方法库的描述</description>
<display-name>方法库的概述</display-name>
<tlib-version>版本号<tlid-version>
<short-name>自定义前缀</short-name>
<uri>唯一标识该tld文件的名称</uri>
<!--配置一个自定义的EL函数-->
<function>
<name>该方法在页面中使用的名称</name>
<function-class>指定函数所在的java类的具体地址</function-class>
<function-signature>指定java中静态函数的方法签名格式( 返回值 方法名(参数类型))<function-signature>
比如 java.lang.String toGBK(java.lang.String)
//参数和返回值为string类型的方法
</function>
例子:
后台代码
public class ElFunction { public static String subString(String str, Integer begin, Integer end) { if (str != null && !"".equals(str)) { return str.substring(begin, end); } return ""; } public static Integer getLength(String str){ if(str!=null){ return str.length(); } return 0; } }
xml配置文件
<?xml version="1.0" encoding="UTF-8" ?> <taglib xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd" version="2.1"> <description>el 1.0 core library</description> <display-name>el core</display-name> <tlib-version>1.0</tlib-version> <short-name>myfn</short-name> <uri>http://www.yxkong.com/jsp/myel/core</uri> <!-- 注册函数 --> <function> <!-- 定义在jsp页面的el表达式中使用的el函数的名称和真实的函数名称可以不一样,但建议起相同的名称--> <name>subxxx</name> <!-- 定义函数所在类的完整路径 --> <function-class>cn.itcast.el.ElFunction</function-class> <!--类中的函数名称 描述函数签名[函数的返回类型 函数的名称(参数类型1,参数类型2)]--> <function-signature>java.lang.String subString(java.lang.String,java.lang.Integer,java.lang.Integer)</function-signature> </function> <!-- 注册函数 --> <function> <!-- 定义在jsp页面的el表达式中使用的el函数的名称和真实的函数名称可以不一样,但建议起相同的名称--> <name>getLength</name> <!-- 定义函数所在类的完整路径 --> <function-class>cn.itcast.el.ElFunction</function-class> <!--类中的函数名称 描述函数签名[函数的返回类型 函数的名称(参数类型1,参数类型2)]--> <function-signature>java.lang.Integer getLength(java.lang.String)</function-signature> </function> </taglib>
*在jsp页面中导入和使用自定义函数
<%@ page language="java" contentType="text/html;charset=utf-8"%> <%@ taglib uri="/WEB-INF/mytld/myelfunction.tld" prefix="myfn"%> <html> <head> <title>My JSP 'el.jsp' starting page</title> </head> <body> <% pageContext.setAttribute("str","abcdef"); %> ${myfn:subxxx(str,1,3)}<br> ${myfn:getLength(str)} </body> </html>
文章评论