EL函数库、自定义函数库


简介:

使用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.1description>    
  <display-name>cdml-functionsdisplay-name>    
  <tlib-version>1.0tlib-version>    
  <short-name>mlshort-name>    
  <uri>http://www.cdml.cn/el/functionsuri> 
  
   <function>
    <name>funname>
    <function-class>fn.MyFnfunction-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>titletitle>
head>
<body>

${ml:fun() }

body> html>

${ml:fun() }的形式使用这个函数,启动服务器并访问jsp:

结果成功输出了函数返回的字符串。