[JSP]自定义EL函数以及使用
有时候在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函数以及使用的更多相关文章
- 【JSP】EL函数和自定义EL函数
简介 EL原本是JSTL1.0中的技术(所以EL和JSTL感情如此好就是自然的了),但是从JSP2.0开始,EL就分离出来纳入了JSP的标准了.但是EL函数还是和JSTL技术绑定在一起.下面将介绍如何 ...
- 自定义el函数
1.1.1 自定义EL函数(EL调用Java的函数) 第一步:创建一个Java类.方法必须是静态方法. public static String sayHello(String name){ retu ...
- EL函数和自定义EL函数
简介 EL原本是JSTL1.0中的技术(所以EL和JSTL感情如此好就是自然的了),但是从JSP2.0开始,EL就分离出来纳入了JSP的标准了.但是EL函数还是和JSTL技术绑定在一起.下面将介绍如何 ...
- 自定义EL函数、自定义JSTL标签
自定义EL函数 1.做一个类(静态) package com.maya.el; public class ELBiaoDaoShi { public static String TiHuan(Stri ...
- 10.自定义EL函数和自定义标签
需要在JSP页面中进行一些常见逻辑操作(如对字符串进行操作),首先考虑是否可以用到sun公司提供的EL函数库(fn.tld)和JSTL 核心标签库 如果sun公司的EL函数库没有或者无法满足,就需要自 ...
- EL表达式 EL函数 自定义el函数 《黑马程序员_超全面的JavaWeb视频教程vedio》
\JavaWeb视频教程_day12_自定义标签JSTL标签库,java web之设计模式\day12_avi\12.EL入门.avi; EL表达式 1. EL是JSP内置的表达式语言! * jsp2 ...
- 自定义EL函数(转)
有看到一个有趣的应用了,转下来,呵呵!! 1.定义类MyFunction(注意:方法必须为 public static) package com.tgb.jstl; /** * ...
- 自定义EL函数(以将字母转为大写为例)
Step1 定义一个类:StringFunction.java 主要作用是来提供转大写的方法; public class StringFunction { public static String t ...
- eclipse新建自定义EL函数
==================================================================================================== ...
随机推荐
- linux小白成长之路13————用U盘安装linux服务器
[内容指引] 制作CentOS安装引导盘: 安装CentOS: 相关设置: 一.制作CentOS安装引导盘 1.下载安装镜像文件 从官网下载iso文件: 网址:https://www.centos.o ...
- 【转】深入理解Android中的SharedPreferences
SharedPreferences作为Android中数据存储方式的一种,我们经常会用到,它适合用来保存那些少量的数据,特别是键值对数据,比如配置信息,登录信息等.不过要想做到正确使用SharedPr ...
- 【学习笔记】Sass入门指南
本文将介绍Sass的一些基本概念,比如说“变量”.“混合参数”.“嵌套”和“选择器继承”等.著作权归作者所有. 什么是Sass? Sass是一门非常优秀的CSS预处语言,他是由Hampton Catl ...
- IOS动画之抖动
-(void)shakeView:(UIView*)viewToShake { CGFloat t =2.0; CGAffineTransform translateRight =CGAffineT ...
- Javaweb学习笔记7—JDBC技术
今天来讲javaweb的第7阶段学习. JDBC技术,关于JDBC本篇博客只介绍了它的一部分,后面博客会更加深入探讨. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps:我的思维是用的 ...
- HttpClient 接口调用
String url = "http://127.0.0.1:8080/api"; //然后根据表名获取公司信息 HttpPost httppost = new HttpPost( ...
- 小知识~VS2012的xamarin加载失败解决
1 由于Nuget版本过低导致的,工具->扩展和更新->在线更新->对nuget程序包程序器进行升级即可 错误代码: 错误 4 错误: 缺少来自类“NuGet.Visua ...
- SQLite -插入查询
SQLite -插入查询 SQLite插入语句是用来添加新行数据到数据库中的一个表. 语法: 有两种基本的插入语句的语法如下: INSERT INTO TABLE_NAME (column1, co ...
- Android(java)学习笔记174:服务(service)之混合方式开启服务
1. 前面我们已经讲过可以使用两种方式开启服务 startService----stopService: oncreate() ---> onstartCommand() ---& ...
- 富通天下(T 面试)
1.Mybatis的分页查询是怎么实现的? 交流: A:我们是通过PageHelper插件实现的 B:你说下原生SQL应该怎么写? A:某段查询SQL,实现分页需要使用limit关键字,改变下标和页码 ...