11.6 定义和使用EL函数
11.6.1 定义和使用函数
- 1.编写一个Java类,并在该类中编写公用的静态方法,用于实现自定义EL函数的功能。
- 2.编写标签库描述文件,对函数进行声明。该文件的扩展名为
.tld
,被保存到web应用的WEB-INF
文件夹下。 - 3.在JSP页面中引用标签库,并调用定义的EL函数,并调用定义的EL函数,实现相应的功能。
示例代码 - 1.编写
StringDeal.java
类
public class StringDeal {
public static String shiftEnter(String str){
String newStr=str.replace("\r\n", "<br>");//替换回车换行符
newStr=newStr.replaceAll(""," "); //替换空格符号
return newStr;
}
}
- 2.编写
stringDeal.tld
文件,保存到WEB-INF文件夹下
<?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 web-jsptaglibrary_2_0.xsd"
version="2.0">
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<uri>/stringDeal</uri>
<function>
<name>shiftEnter</name>
<function-class>com.hwp.StringDeal</function-class>
<function-signature>java.lang.String shiftEnter(java.lang.String)</function-signature>
</function>
</taglib>
参数说明
<uri>/stringDeal</uri>
用于指定tld文件的映射路径
<name>shiftEnter</name>
用于指定EL函数所对应的方法名,通常与java文件名字一样
<function-class>com.hwp.StringDeal</function-class>
包名+类名 -
<function-signature>java.lang.String shiftEnter(java.lang.String)</function-signature>
用于指定EL函数所对应的静态方法,包含返回值类型和入口参数类型
- 3.编写
index.jsp
文件
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>EL表达式</title>
</head>
<body>
<form action="deal.jsp" name="form1" method="post">
<textarea rows="5" cols="30" name="content"></textarea>
<br>
<input type="submit" name="Button" value="提交">
</form>
</body>
</html>
- 4.编写
deal.jsp
文件
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/stringDeal" prefix="wghfn" %>
<% request.setCharacterEncoding("utf-8"); %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'deal.jsp' starting page</title>
</head>
<body>
内容为:<br>
${wghfn:shiftEnter(param.content)}
</body>
</html>
网友评论