EL函数库以及自定义EL函数库

EL函数库以及自定义EL函数库

一、概述

 

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

EL函数库就是定义一些有返回值静态方法。然后通过EL语言来调用它们!当然,不只是JSTL可以定义EL函数库,我们也可以自定义EL函数库。EL函数库中包含了很多对字符串的操作方法,以及对集合对象的操作。

二、导入函数库

 

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

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

三、EL库函数

 

 Java Code 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

 

<%@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"69)}<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> -->

四、自定义EL函数库

 

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

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

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

例:

1,Funcations .java

 Java Code 

1
2
3
4
5
6
7
8

 

package cn.wj.el.funcations;

public class Funcations {
    public static String test() {
        return "自定义EL函数库测试";
    }
}

2,wj.tld(放到classes下)

 

 Java Code 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

 

<?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.wj.cn/jsp/functions</uri>

  <function>
    <name>test</name>
    <function-class>cn.wj.el.funcations.Funcations</function-class>
    <function-signature>String test()</function-signature>
  </function>
</taglib>

3,index.jsp

 

 Java Code 

1
2
3
4
5
6
7
8
9
10

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="wj" uri="/WEB-INF/wj.tld" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <body> 
    <h1>${wj:test() }</h1>
  </body>
</html>

 

 

 

 

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值