EL不支持字符串操作
定义EL函数的开发步骤:
1、定义一个普通类,提供实现功能的静态方法(EL函数只能调用静态方法)
2、EL函数进行配置:在WEB-INF目录下建立一个扩展名为tld(Tag Libary Definition)的xml文件。
3、在JSP中使用自定义的EL函数
首先:通过taglib指令引入外部的函数库
<%@ taglib uri=”http://www.itheima.com/jsp/functions” prefix=”myfn”%>
MyJsp.jsp文件:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://www.itheima.com/jsp/functions" prefix="myfn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>定义和使用EL函数</title>
</head>
<body>
<%
pageContext.setAttribute("s", "abcdefg");
%>
${myfn:toUppercase(s)}
</body>
</html>
MyFunctions.java文件:
package com.itheima.jsp;
public class MyFunctions {
public static String toUppercase(String s){
return s.toUpperCase();
}
}
myfn.tld文件(和web.xm文件同目录):
<?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>myfn</short-name>
<uri>http://www.itheima.com/jsp/functions</uri>
<function>
<name>toUppercase</name>
<function-class>com.itheima.jsp.MyFunctions</function-class>
<function-signature>java.lang.String toUppercase( java.lang.String )</function-signature>
</function>
</taglib>
运行:http://localhost:8080/EL_project/MyJsp.jsp
结果:ABCDEFG