简介:
使用EL函数库需要导入jstl的jar包:
然后导入标签:
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
String toUpperCase(String input):把参数转换成大写
String toLowerCase(String input):把参数转换成小写
int indexOf(String input, String substring):从大串中找出小串的位置
boolean contains(String input, String substring):大串是否包含小串,包含为true
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):获取大串中小串所在位置后面的字符串
String 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):联合字符串数组
以上就是EL函数库的函数,使用格式:
${函数库前缀:函数名}
例如:导入标签时,prefix="fn"定义前缀为fn
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
${fn:length(arr) } -- 得到arr的长度
${fn:toLowerCase(Hello) } -- 首字母小写,输出效果:"hello"
自定义函数库:
定义一个Java类,可以有任意个方法,但是必须是static静态方法,并且要有返回值。
package fn;
public class MyFn {
public static String fun() {
return "第一个自定义标签";
}
}
在WEB-INF目录下创建tld文件夹,并创建一个a.tld文件进行配置:
在上面的类中,每增加一个函数,就必须在下面的tld文件中将对应的函数进行配置
<?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">
<description>No.1</description> <!-- 描述 -->
<display-name>cdml-functions</display-name> <!-- 名称 -->
<tlib-version>1.0</tlib-version> <!-- 版本 -->
<short-name>ml</short-name> <!-- 前缀 -->
<uri>http://www.cdml.cn/el/functions</uri> <!-- 地址 -->
<function>
<name>fun</name>
<function-class>fn.MyFn</function-class>
<function-signature>java.lang.String fun()</function-signature>
</function>
</taglib>
在新建的JSP页面导入标签:
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib uri="/WEB-INF/tld/a.tld" prefix="ml" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>title</title>
</head>
<body>
<h1>${ml:fun() }</h1>
</body>
</html>
${ml:fun() }的形式使用这个函数,启动服务器并访问jsp:
结果成功输出了函数返回的字符串。