有时候在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进行替换

最新文章

  1. CSS3边框图片属性---border-image
  2. NGUI悬浮菜单思路实践
  3. JavaScript的检测属性、属性特性、枚举属性
  4. 微软职位内部推荐-Senior Software Engineer -Web
  5. scanf()函数用法小结
  6. 深刻理解C#的传值调用和传引用调用
  7. HW2.22
  8. AE 线编辑
  9. phpmyadmin密码字段加密方法
  10. (转)WCF中调用WebService出错,大家帮忙看看,回答就有分
  11. 3404: [Usaco2009 Open]Cow Digit Game又见数字游戏
  12. Python实战之int学习笔记及简单练习
  13. java之内存分布图
  14. 斯坦福大学公开课机器学习:advice for applying machine learning - deciding what to try next(设计机器学习系统时,怎样确定最适合、最正确的方法)
  15. Linux用户登录记录日志和相关查看命令汇总(转)
  16. Python基础教程(第3版) 笔记(二)
  17. Mysql跨表更新
  18. AngularJS 事件广播与接收 $broadcast,$emit,$on 作用域间通信 封装factory服务 发布订阅
  19. 【对比分析五】CSS阻塞和JS阻塞
  20. Python初学者第十五天 文件处理3

热门文章

  1. 013、BOM对象的应用
  2. UVa OJ 494
  3. CF749C Voting
  4. PMP项目管理学习笔记(5)——整合管理之制定项目章程
  5. spring 常见的注解
  6. CAD交互绘制带周长面积的矩形框(网页版)
  7. 怎么给xshell服务配置密钥远程登陆
  8. 9. FILES
  9. CSS---基础外部样式表
  10. Python爬虫-抖音小视频-mitmproxy与Appium