阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

EL函数库

204次阅读
没有评论

共计 3239 个字符,预计需要花费 9 分钟才能阅读完成。

1、什么 EL 函数库

EL 函数库是由第三方对 EL 的扩展,我们现在学习的 EL 函数库是由 JSTL 添加的。JSTL 明天再学!

EL 函数库就是定义一些有 返回值 静态方法。然后通过 EL 语言来调用它们!当然,不只是 JSTL 可以定义 EL 函数库,我们也可以自定义 EL 函数库。

EL 函数库中包含了很多对字符串的操作方法,以及对集合对象的操作。例如:${fn:length(“abc”)}会输出 3,即字符串的长度。

2、导入函数库

因为是第三方的东西,所以需要导入。导入需要使用 taglib 指令!

<%@ taglib prefix=“fn”uri=“http://java.sun.com/jsp/jstl/functions”%>

3、EL 函数库介绍

l String toUpperCase(String input):

l String toLowerCase(String input):

l int indexOf(String input, String substring):

l boolean contains(String input, String substring):

l boolean containsIgnoreCase(String input, String substring):

l boolean startsWith(String input, String substring):

l boolean endsWith(String input, String substring):

l String substring(String input, int beginIndex, int endIndex):

l String substringAfter(String input, String substring):hello-world,“-“

l substringBefore(String input, String substring):hello-world,“-“

l String escapeXml(String input):把字符串的“>”、“<”。。。转义了!

l String trim(String input):

l String replace(String input, String substringBefore, String substringAfter):

l String[] split(String input, String delimiters):

l int length(Object obj):可以获取字符串、数组、各种集合的长度!

l String join(String array[], String separator):

<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
String[] strs = {"a", "b","c"};
List list = new ArrayList();
list.add("a");
pageContext.setAttribute("arr", strs);
pageContext.setAttribute("list", list);
%>
${fn:length(arr) }<br/><!--3-->
${fn:length(list) }<br/><!--1-->
${fn:toLowerCase("Hello") }<br/> <!-- hello -->
${fn:toUpperCase("Hello") }<br/> <!-- HELLO -->
${fn:contains("abc", "a")}<br/><!-- true -->
${fn:containsIgnoreCase("abc", "Ab")}<br/><!-- true -->
${fn:contains(arr, "a")}<br/><!-- true -->
${fn:containsIgnoreCase(list, "A")}<br/><!-- true -->
${fn:endsWith("Hello.java", ".java")}<br/><!-- true -->
${fn:startsWith("Hello.java", "Hell")}<br/><!-- true -->
${fn:indexOf("Hello-World", "-")}<br/><!-- 5 -->
${fn:join(arr, ";")}<br/><!-- a;b;c -->
${fn:replace("Hello-World", "-", "+")}<br/><!-- Hello+World -->
${fn:join(fn:split("a;b;c;", ";"), "-")}<br/><!-- a-b-c -->
${fn:substring("0123456789", 6, 9)}<br/><!-- 678 -->
${fn:substring("0123456789", 5, -1)}<br/><!-- 56789 -->
${fn:substringAfter("Hello-World", "-")}<br/><!-- World -->
${fn:substringBefore("Hello-World", "-")}<br/><!-- Hello -->
${fn:trim("a b c")}<br/><!-- a b c -->
${fn:escapeXml("<html></html>")}<br/> <!-- <html></html> -->
4 自定义 EL 函数库

l 写一个类,写一个有返回值的静态方法;

l 编写 itcast.tld 文件,可以参数 fn.tld 文件来写,把 itcast.tld 文件放到 /WEB-INF 目录下;

l 在页面中添加 taglib 指令,导入自定义标签库。

ItcastFuncations.java

package cn.itcast.el.funcations;
public class ItcastFuncations {public static String test() {return "传智播客自定义 EL 函数库测试";
}
}

itcast.tld(放到 classes 下)

<?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>itcast</short-name>
<uri>http://www.itcast.cn/jsp/functions</uri>
<function>
<name>test</name>
<function-class>cn.itcast.el.funcations.ItcastFuncations</function-class>
<function-signature>String test()</function-signature>
</function>
</taglib>

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="itcast" uri="/WEB-INF/itcast.tld" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<h1>${itcast:test() }</h1>
</body>
</html>

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-06-06发表,共计3239字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中