自定义JSTL函数标签(转)

 自定义JSTL标签函数,方便页面的调用,通过调用函数返回数据进行页面显示。简单、方便,在开发中时常用的到。 

以下通过显示省份来看实现步骤: 


第一步:新建一个类如下: 
UtilFunction.java 

Java代码  收藏代码
  1. package demo;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.List;  
  5.   
  6. // 测试  
  7. // 自定义JSTL函数  
  8. public class UtilFunction {  
  9.     // 获取省份  
  10.     public static List getProvinces() {  
  11.         List provinces = new ArrayList();  
  12.           
  13.         // 暂时添加几个测试  
  14.         provinces.add("广东省");  
  15.         provinces.add("广西省");  
  16.         provinces.add("山东省");  
  17.         provinces.add("四川省");  
  18.         provinces.add("江西省");  
  19.           
  20.         return provinces;     
  21.     }     
  22. }  




第二步:编写tld标签函数注册文件 
myfunctions.tld 

Xml代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2.   
  3. <taglib xmlns="http://java.sun.com/xml/ns/j2ee"  
  4.   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  5.   xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"  
  6.   version="2.0">  
  7.       
  8.   <tlib-version>1.0</tlib-version>  
  9.   <short-name>my</short-name>  
  10.   <uri>http://www.changtusoft.cn/test/functions</uri>  
  11.     
  12.   <!-- JSTL自定义函数  获取省份 -->  
  13.   <function>  
  14.     <name>getProvinces</name>  
  15.     <function-class>demo.UtilFunction</function-class>  
  16.     <function-signature>java.util.List getProvinces()</function-signature>  
  17.   </function>  
  18. </taglib>  



第三步:在web.xml文件中注册tld 

Xml代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.5"   
  3.     xmlns="http://java.sun.com/xml/ns/javaee"   
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  5.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
  6.     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
  7.   <welcome-file-list>  
  8.     <welcome-file>index.jsp</welcome-file>  
  9.   </welcome-file-list>  
  10.     
  11.   <!-- 注册JSTL函数 -->  
  12.   <jsp-config>  
  13.     <taglib>  
  14.         <taglib-uri>http://www.changtusoft.cn/test/functions</taglib-uri>  
  15.         <taglib-location>/WEB-INF/myfunctions.tld</taglib-location>  
  16.     </taglib>  
  17.   </jsp-config>  
  18.     
  19. </web-app>  



第四步:编写jsp进行测试 
index.jsp 

Java代码  收藏代码
  1. <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>  
  2. <!-- 导入jstl标签库 -->  
  3. <%@ taglib prefix="c"  uri="http://java.sun.com/jsp/jstl/core" %>  
  4. <!-- 导入自定义jstl函数 -->  
  5. <%@ taglib prefix="my" uri="http://www.changtusoft.cn/test/functions" %>  
  6.   
  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  8. <html>  
  9.   <head>  
  10.     <title>自定义JSTL函数</title>  
  11.   </head>  
  12.     
  13.   <body>  
  14.     省份:  
  15.     <select name="provinces">  
  16.     <option>--请选择省份--</option>  
  17.     <c:forEach items="${my:getProvinces()}" var="p">  
  18.         <option>${p }</option>  
  19.     </c:forEach>  
  20.     </select>  
  21.   </body>  
  22. </html>  




部署例子到tomcat测试:  http://localhost:8080/jstl_functions/index.jsp 

结果可以显示省份下拉框表示成功.

原文地址:https://www.cnblogs.com/summer520/p/2964357.html