自定义JSTL标签函数,方便页面的调用,通过调用函数返回数据进行页面显示。简单、方便,在开发中时常用的到。
以下通过显示省份来看实现步骤:
第一步:新建一个类如下:
以下通过显示省份来看实现步骤:
第一步:新建一个类如下:
package demo;
import java.util.ArrayList;
import java.util.List;
// 测试
// 自定义JSTL函数
public class UtilFunction {
// 获取省份
public static List getProvinces() {
List provinces = new ArrayList();
// 暂时添加几个测试
provinces.add("广东省");
provinces.add("广西省");
provinces.add("山东省");
provinces.add("四川省");
provinces.add("江西省");
return provinces;
}
}
第二步:编写tld标签函数注册文件
myfunctions.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/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" version="2.0"> <tlib-version>1.0</tlib-version> <short-name>my</short-name> <uri>http://www.changtusoft.cn/test/functions</uri> <!-- JSTL自定义函数 获取省份 --> <function> <name>getProvinces</name> <function-class>demo.UtilFunction</function-class> <function-signature>java.util.List getProvinces()</function-signature> </function> </taglib>
第三步:在web.xml文件中注册tld
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <!-- 注册JSTL函数 --> <jsp-config> <taglib> <taglib-uri>http://www.changtusoft.cn/test/functions</taglib-uri> <taglib-location>/WEB-INF/myfunctions.tld</taglib-location> </taglib> </jsp-config> </web-app>
第四步:编写jsp进行测试
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<!-- 导入jstl标签库 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!-- 导入自定义jstl函数 -->
<%@ taglib prefix="my" uri="http://www.changtusoft.cn/test/functions" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>自定义JSTL函数</title>
</head>
<body>
省份:
<select name="provinces">
<option>--请选择省份--</option>
<c:forEach items="${my:getProvinces()}" var="p">
<option>${p }</option>
</c:forEach>
</select>
</body>
</html>