自定义JSTL函数标签(转)
自定义JSTL标签函数,方便页面的调用,通过调用函数返回数据进行页面显示。简单、方便,在开发中时常用的到。
以下通过显示省份来看实现步骤:
第一步:新建一个类如下:
UtilFunction.java
- 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进行测试
index.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>
部署例子到tomcat测试: http://localhost:8080/jstl_functions/index.jsp
结果可以显示省份下拉框表示成功.