论坛首页 Java企业应用论坛

自定义JSTL标签函数,方便开发使用

浏览 4400 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-08-25  
    自定义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

结果可以显示省份下拉框表示成功...
   发表时间:2009-08-26  
标签的使用时提高了开发效率,但是同时要考虑运行效率,后期维护
0 请登录后投票
   发表时间:2009-08-26  
感觉这东西得会,但一般情况下用不着,以备不时之需吧
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics