有时候在JSP页面需要进行一连串的字符串的处理,需要进行自定义EL函数。

先看EL函数的tld文件:

standard.jar下面:

自定义EL函数:

1.编写EL函数(全是public static修饰)

  下面这个函数是将一个字符串按后面的格式进行替换

package cn.xm.exam.MyElFunction;

/**
* 自定义EL函数,方便在JSP中处理一些复杂的字符串替换函数
*
* @author QiaoLiQiang
* @time 2017年10月29日下午9:09:47
*/
public class MyElFunction {
/**
* 将source字符串按照s1-s2替换,例如:s1:1234,s2:ABCD则为将source中1换为A,2换为B```
*
* @param source
* 需要被替换的字符串
* @param s1
* 替换前:1 2 3 4 5
* @param s2
* 替换后:A B C D E
* @return
*/
public static String replace(String source, String s1, String s2) {
for (int i = 0, length_1 = s1.length(); i < length_1; i++) {
source = source.replace(s1.charAt(i), s2.charAt(i));
}
return source;
}
}

2.编写tld文件进行描述(tld文件放在WEB-INF目录下,对刚才编写的函数进行描述,头尾可以参考standard.jar/META-INF/fn.tld)

  tld文件加唯一的uri(便于在JSP中引入这个uri)

<?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>JSTL 1.1 functions library</description>
<display-name>JSTL functions</display-name>
<tlib-version>1.1</tlib-version>
<short-name>MyElFunction</short-name>
<uri>/myfunction</uri> <function>
<description>
将第一个参数中的1234,替换为ABCD
</description>
<name>replace</name>
<function-class>cn.xm.exam.MyElFunction.MyElFunction</function-class>
<function-signature>String replace(java.lang.String, java.lang.String,
java.lang.String)
</function-signature>
<example>
${replace("126352","1234","ABCD")}
</example>
</function> </taglib>

3.JSP中使用

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib uri="/myfunction" prefix="my"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>${my:replace("12345","1234","ABCD") }
</body>
</html>

结果:

 4.JSP中结合EL函数进行使用

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib uri="/myfunction" prefix="my"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<%
request.setAttribute("test", "132");
%>
</head>
<body>${my:replace(test,"1234","ABCD") }
</body>
</html>

结果:

ACB

解析:上述自定义的函数从域中取出test,然后对test进行替换

[JSP]自定义EL函数以及使用的更多相关文章

  1. 【JSP】EL函数和自定义EL函数

    简介 EL原本是JSTL1.0中的技术(所以EL和JSTL感情如此好就是自然的了),但是从JSP2.0开始,EL就分离出来纳入了JSP的标准了.但是EL函数还是和JSTL技术绑定在一起.下面将介绍如何 ...

  2. 自定义el函数

    1.1.1 自定义EL函数(EL调用Java的函数) 第一步:创建一个Java类.方法必须是静态方法. public static String sayHello(String name){ retu ...

  3. EL函数和自定义EL函数

    简介 EL原本是JSTL1.0中的技术(所以EL和JSTL感情如此好就是自然的了),但是从JSP2.0开始,EL就分离出来纳入了JSP的标准了.但是EL函数还是和JSTL技术绑定在一起.下面将介绍如何 ...

  4. 自定义EL函数、自定义JSTL标签

    自定义EL函数 1.做一个类(静态) package com.maya.el; public class ELBiaoDaoShi { public static String TiHuan(Stri ...

  5. 10.自定义EL函数和自定义标签

    需要在JSP页面中进行一些常见逻辑操作(如对字符串进行操作),首先考虑是否可以用到sun公司提供的EL函数库(fn.tld)和JSTL 核心标签库 如果sun公司的EL函数库没有或者无法满足,就需要自 ...

  6. EL表达式 EL函数 自定义el函数 《黑马程序员_超全面的JavaWeb视频教程vedio》

    \JavaWeb视频教程_day12_自定义标签JSTL标签库,java web之设计模式\day12_avi\12.EL入门.avi; EL表达式 1. EL是JSP内置的表达式语言! * jsp2 ...

  7. 自定义EL函数(转)

    有看到一个有趣的应用了,转下来,呵呵!! 1.定义类MyFunction(注意:方法必须为 public static) package com.tgb.jstl;         /**     * ...

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

    Step1 定义一个类:StringFunction.java 主要作用是来提供转大写的方法; public class StringFunction { public static String t ...

  9. eclipse新建自定义EL函数

    ==================================================================================================== ...

随机推荐

  1. js的本质、全局属性

    一.js的本质 1.js的本质就是处理数据, 数据来自于后台数据库, 所以变量就起到一个临时数据的作用 Ecmascript 制定了js的数据类型 2.数据类型有哪些? 字符串(string).数字( ...

  2. vs 2015 编译cocos2dx 报错

    VS 2015 compiling cocos2d-x 3.3 error “fatal error C1189: #error: Macro definition of snprintf confl ...

  3. SQL中的SELECT_简单查询语句总结

    --以scott用户下的dept和emp表为例 --注意:如果scott用户不能使用,请使用system用户登录--解锁scott用户ALTER USER SCOTT ACCOUNT UNLOCK;- ...

  4. android AutoCompleteTextView 实现手机号格式化,附带清空历史的操作

    有个小伙伴遇到了这样一个问题,就是AutoCompleteTextView实现自动填充的功能.同时要具备手机格式化的功能.下拉列表最后一行是有个清除历史的功能.可是点击“清除历史”却把文字要设置进去A ...

  5. Android利用Socket与硬件通信之智能家居APP

    前几天做一个智能家居APP,硬件段使用的是ESP8266WIFI模块,其实不管是WIFI模块还是蓝牙,通信都是同样一个道理,获取IP和端口来进行通信. 我是通过XCOM v2.0 发送信息,移动端接收 ...

  6. Centos5安装***

    最近shadowsocks挺火,看了几张帖子,感觉在手机上应该挺好用,电脑都是挂着ssh,用不到***了,下面贴出服务器安装过程: yum install build-essential autoco ...

  7. 用JS获取Html中所有图片文件流然后替换原有链接

    function displayHtmlWithImageStream(bodyHtml) { var imgReg = /<img.*?(?:>|\/>)/gi; var arr ...

  8. SQLite - SELECT查询

    SQLite - SELECT查询 SQLite SELECT语句用于获取数据从一个SQLite数据库表返回数据结果表的形式.也称为result-sets这些结果表. 语法 SQLite SELECT ...

  9. Java文件编译与反编译:javac命令和javap命令

    1.创建一个Test.java文件,并输入内容 public class Test{ private int m; public int inc(){ return m + 1; } } 2.使用ja ...

  10. EmployeeMapper.xml例子,学习佟刚老师的myBatis课程,记录下的EmployeeMapper.xml,注释详细

    <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-/ ...