EL自定义函数(调用java方法)的步骤:
1.写一个类其中包含el要调用的函数,这个函数必须是静态的.
2.写一个tld文件在其中对要进行调用的函数进行描述
3.在jsp页面中的taglib指令将tld文件导入到要调用java方法的jsp页面中
案例:自定义进行URL编码的函数,并在jsp页面中调用。
1.自定义的函数
package cn.itheima.myfunction;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
public class MyFunction {
public static String URLEncoding(String str,String encoding){
try {
return URLEncoder.encode(str, encoding);
} catch (UnsupportedEncodingException e) {
throw new RuntimeException();
}
}
}
2.el文件(这个el文件必须在WEB-INF文件夹下)
<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" 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">
<tlib-version>1.0</tlib-version>
<short-name>myfunction</short-name>
<uri>http://www.itheima.com</uri>
<function>
<name>Encoding</name>
<function-class>cn.itheima.myfunction.MyFunction</function-class>
<function-signature>java.lang.String URLEncoding(java.lang.String,java.lang.String)</function-signature>
</function>
</taglib>
3.jsp页面调用
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://www.itheima.com" prefix="myfunction"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<meta http-equiv=" pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
</head>
<body>
${myfunction:Encoding("李卫康","utf-8") }
</body>
</html>