随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)
分为三个步骤:
1、编写Java类,并提供公共静态方法,用于实现EL函数的具体功能。
2、编写标签库描述文件,对函数进行声明。文件扩展名为.tld,保存到WEB-INF文件夹下。
3、JSP页面中引用标签库,实现相应功能。
下面用一个简单示例演示:
入口页面index.jsp:
<%@page import="java.net.URLDecoder"%>
<%@ page language="java" import="java.util.*"
contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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>起始页</title>
</head>
<body>
<form name="form1" method="post" action="result.jsp">
<textarea name="content" cols="30" rows="5"></textarea>
<br>
<input type="submit" name="Button" value="提交"/>
</form>
</body>
</html>
展示页面result.jsp:
<%@page import="java.sql.*"%>
<%@ page language="java" import="java.util.*" autoFlush="true"
contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib uri="/stringUtil" prefix="w"%>
<!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>
内容为:
<br> ${w:shiftEnter(param.content)}
</body>
</html>
标签库描述文件:
stringUtil.tld:
<?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/j2eeweb-jsptaglibrary_2_0.xsd"
version="2.0">
<tlib-version>1.0</tlib-version>
<uri>/stringUtil</uri>
<function>
<name>shiftEnter</name>
<function-class>com.home.web.util.StringUtil</function-class>
<function-signature>java.lang.String shiftEnter(java.lang.String)
</function-signature>
</function>
</taglib>
StringUtil.java:
package com.home.web.util;
public class StringUtil {
/**
*
* @description 处理字符串。替换回车换行为<br>
* ,空格为
* @param str
* @return
*/
public static String shiftEnter(String str) {
String newStr = str.replaceAll("\r\n", "<br>");
newStr = newStr.replace(" ", " ");
return newStr;
}
}