Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 342|回复: 0

[JSTL学习]自定义JSTL标记函数

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-10-28 23:56:00 | 显示全部楼层 |阅读模式
    自定义JSTL标签函数,方便页面的调用,通过调用函数返回数据进行页面显示。简单、方便,在开发中时常用的到。

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


    第一步:新建一个类如下:
    UtilFunction.java
         
          
          
           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代码
            
          
          
          
          <?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代码
            
          
          
          
          <?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
         
         
          Java代码
          
          
         
         
        <%@ 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>
                          [/code]
         部署例子到tomcat测试:  http://localhost:8080/jstl_functions/index.jsp

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

       
         
         
          
          

            
          

            
          
         
       

      


    源码下载:http://file.javaxxz.com/2014/10/28/235600234.zip
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-2-26 04:40 , Processed in 0.317719 second(s), 36 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表