-------------------------------- JSTL函数库----------------------------------
EL函数库
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函数库介绍
- String toUpperCase(String input):
- String toLowerCase(String input):
- int indexOf(String input, String substring):
- boolean contains(String input, String substring):
- boolean containsIgnoreCase(String input, String substring):
- boolean startsWith(String input, String substring):
- boolean endsWith(String input, String substring):
- String substring(String input, int beginIndex, int endIndex):
- String substringAfter(String input, String substring):
- substringBefore(String input, String substring):
- String escapeXml(String input):
- String trim(String input):
- String replace(String input, String substringBefore, String substringAfter):
- String[] split(String input, String delimiters):
- int length(Object obj):
- 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> --> |
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="java.util.*" %> <%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <% String[] arr = {"a","b","c"}; pageContext.setAttribute("arr", arr); List list = new ArrayList(); list.add(1); list.add(2); pageContext.setAttribute("list", list); %> <%--打印数组的长度 --%> ${fn:length(arr) }<br> <%--打印list集合的长度 --%> ${fn:length(list) }<br> <%--把英文字母变成大写 --%> ${fn:toUpperCase("abc") }<br> <%--把英文字母变成小写 --%> ${fn:toLowerCase("ABC") }<br> <%--判断第一个字符串是否包含第二个字符串 --%> ${fn:contains("www.likunpeng.com","likunpeng") }<br> <%--忽略大小写判断第一个字符串是否包含第二个字符串 --%> ${fn:containsIgnoreCase("www.likunpeng.com","LIKUNPENG") }<br> <%--判断数组或集合中是否包含某一个值 --%> ${fn:contains(arr,"a") }<br> <%--忽略大小写判断数组或集合中是否包含某一个值 --%> ${fn:containsIgnoreCase(arr,"A") }<br> <%--判断第一个字符串是否以第二个字符串结尾 --%> ${fn:endsWith("www.likunpeng.com","com") }<br> <%--判断第一个字符串是否以第二个字符串开头 --%> ${fn:startsWith("www.likunpeng.com","www") }<br> <%--查询索引 --%> ${fn:indexOf("likunpeng","p") }<br> <%--将数组的值用指定字符连接起来 --%> ${fn:join(arr,"-") }<br> <%-- 替换字符串中的字符 ,第二个字符是要替换的字符,第三个字符是替换后的字符--%> ${fn:replace("www.likunpeng.com","com","cn") }<br> <%-- 将字符串按指定字符分割成数组,再用指定字符将字符串数组连接起来 --%> ${fn:join(fn:split("www.likunpeng.com","."),"-") }<br> <%--字符串的截取,第二个参数是开始索引包含,第三个参数是结束索引不包含,如果第三个参数是-1代表截取后面全部长度 --%> ${fn:substring("likunpeng",2,5) }<br> ${fn:substring("likunpeng",2,-1) }<br> <%-- 按第二个参数开始截取后面全部长度,第二个参数必须是字符,不包含--%> ${fn:substringAfter("likunpeng","p") }<br> <%-- 按第二个参数开始截取字符串前面全部长度,第二个参数必须是字符,不包含--%> ${fn:substringBefore("likunpeng","p") }<br> <%--去掉字符串的前后的空格,中间的不会去掉 --%> ${fn:trim(" l i k u n ") }<br> <%-- 避开xml文件解析,输出xml格式源代码,如果直接输出xml格式字符串,会被解析--%> ${fn:escapeXml("<font color=red>www.likunpeng.com<font>") }<br> </body> </html> |