自定义JSTL

      自己定义JSTL标签函数,可以大大简化我们在开发中的工作。我们可以定义自己需要的函数,使用也极其方便。
以下通过显示重要等级来看实现步骤:
首先,要新建一个JAVA类,提供方法: TagFunction.java
 package myUtil;    
	import java.util.ArrayList;  
	import java.util.List;  
	// 自定义JSTL函数  
	public class TagFunction {  
	    // 获取重要等级  
         public static List getImportantLevel () {  
	        List importantLevel = new ArrayList();  	          
	        importantLevel .add("全部");  
	        importantLevel .add("重要");  
	        importantLevel .add("一般");  
	        importantLevel .add("低");  	          
	        return importantLevel ;     
	    }     
	}  

其次,要编写tld标签函数注册文件,将之前写的java 类方法注册到tld:tagfunctions.tld
	<?xml version="1.0" encoding="gb2312" ?>  
	  
	<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>myTag</short-name>  
	  <uri>myTag</uri>  
	    
	  <!-- JSTL自定义函数  获取重要等级 -->  
	  <function>  
	    <name>getImportantLevel</name>  
	    <function-class>myUtil.TagFunction</function-class>  
	    <function-signature>java.util.List getImportantLevel()</function-signature>  
	  </function>  
	</taglib> 

接着还要在web.xml文件中注册刚才创建的tld :
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>myTag</taglib-uri>  
15.	        <taglib-location>/WEB-INF/tagfunctions.tld</taglib-location>  
16.	    </taglib>  
17.	  </jsp-config>  
18.	    
19.	</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="myTag " uri="myTag"%>  
	  
	<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
	<html>  
	  <head>  
	    <title>自定义JSTL函数</title>  
	  </head>  
	    
	  <body>  
	    重要等级:  
	    <select name="importantLevel">  
	    <option>--请选择重要等级--</option>  
	    <c:forEach items="${ myTag:getImportantLevel()}" var="t">  
	        <option>${t}</option>  
	    </c:forEach>  
	    </select>  
	  </body>  
	</html> 

最后,只要把例子部署到tomcat测试就可以了,结果正确显示重要等级下拉框。

你可能感兴趣的:(java,xml,jsp,tag,jstl)