黑马day06 EL之自定义EL函数

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>
时间: 2024-10-07 05:29:03

黑马day06 EL之自定义EL函数的相关文章

自定义el函数

1.1.1 自定义EL函数(EL调用Java的函数) 第一步:创建一个Java类.方法必须是静态方法. public static String sayHello(String name){ return "Hello " + name; } 第二步:提供一个tld文件.(tld文件标签库文件.放置在WEB-INF 下) 在tld文件中定义: <!-- 自定义EL函数 --> <function> <!-- 函数名 --> <name>s

EL函数和自定义EL函数

简介 EL原本是JSTL1.0中的技术(所以EL和JSTL感情如此好就是自然的了),但是从JSP2.0开始,EL就分离出来纳入了JSP的标准了.但是EL函数还是和JSTL技术绑定在一起.下面将介绍如何自定义EL函数,以及JSTL中的EL函数. 自定义EL函数虽然用得很少(JSTL自带的EL函数已经够用了),但是可以帮助理解自定义tag打下基础. 自定义EL函数 一.编写Java实现函数 必须是public类中的public static 函数,每一个静态函数就可以成为一个EL函数.必须在工程的c

EL表达式 JSTL的标签库 EL的函数 自定义EL函数 自定义标签 JSP的开发模式 注册登陆案例

EL表达式 JSTL的标签库 EL的函数 自定义EL函数 自定义标签 JSP的开发模式 注册登陆案例 EL表达式 1.获取域对象中的值 2.EL表达式支持运算 ${ num1 + num2 } EL获取常用的WEB对象 1.pageScope 获取page域对象的值 2.requestScope 获取request域对象的值 3.sessionScope 获取session域对象的值 4.applicationScope 获取application域对象的值 * 例子:向某个域中来存入值 req

自定义EL函数(以将字母转为大写为例)

Step1 定义一个类:StringFunction.java 主要作用是来提供转大写的方法; public class StringFunction { public static String toUpper(String str) { return str.toUpperCase(); } } Step2 定义一个tld文件:dssfn.tdl <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="h

黑马day06 EL表达式获取数据

获取数据: 使用中括号的地方都可以使用点号替代,除了中括号中是数字或者中括号中包含特殊字符(-.)的情况除外 在中括号中如果不用双引号引起来则是变量,先找变量的值再拿变量的值使用.如果用双引号则是常量,直接使用常量的值 ~获取常量 字符串/数字/布尔类型,直接写在el表达式中,el直接进行输出 ~获取域中的变量 如果el中写的是一个变量的名,则el会调用pageContext的findAttribute方法,在四大作用域中以给定的名字找对应的属性值,找到后进行输出,如果四个域中都找不到,什么都不

EL表达式(三)自定义 EL 表达式

自定义EL函数(静态方法): 编写步骤: 1.编写一个Java类,提供一个静态方法 import java.util.List; public class GetLength { public static Integer getLength(List list){ return list.size(); } } 2.在WEB-INF目录下建立一个拓展名为tld(描述文件)的xml文件 <?xml version="1.0" encoding="UTF-8"

自定义EL表达式,将对象转成json格式,关键代码

做javaweb开发的最常用的一个东西el表达式,这个东西是个很好用的东西,但有些时候我们处理复杂的字符串操作,就有些相形见绌了,这个时候就需要用自定义的方法去实现更多简洁方便的事情. 下面自定义一个将对象转成json字符串的自定义el表达式用来讲解这个自定义的过程: ElFunctions.java import net.sf.json.JSONObject; public class ElFunctions{ public static String toJsonString(Object

EL表达式中fn函数

JSTL 使用表达式来简化页面的代码,这对一些标准的方法,例如bean的getter/setter方法,请求参数或者context以及 session中的数据的访问非常方便,但是我们在实际应用中经常需要在页面调用对象的某些方法,例如我需要调用字符串的length方法来获取字符串的 长度时,在以往的开发过程中我们必须把对象先转为String类,然后在调用其length方法,这样的代码繁琐而且容易出错. 因此JSTL内置了几个用于字符串操作的方法,可以直接在表达式中使用,大大的简化了代码,提供代码的

EL表达式中fn函数 (转载)

JSTL 使用表达式来简化页面的代码,这对一些标准的方法,例如bean的getter/setter方法,请求参数或者context以及 session中的数据的访问非常方便,但是我们在实际应用中经常需要在页面调用对象的某些方法,例如我需要调用字符串的length方法来获取字符串的 长度时,在以往的开发过程中我们必须把对象先转为String类,然后在调用其length方法,这样的代码繁琐而且容易出错. 因此JSTL内置了几个用于字符串操作的方法,可以直接在表达式中使用,大大的简化了代码,提供代码的