java怎么自定义jstl标签库

这篇“java怎么自定义jstl标签库”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“java怎么自定义jstl标签库”文章吧。

成都创新互联是专业的淮南网站建设公司,淮南接单;提供做网站、网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行淮南网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

开发环境:Spring+SpringMVC +Maven +Mybatis

JSTL 标签库的配置:

  导入对应的 jstl.jar 和 standard.jar ,我使用的配置如下:


    1.1.2
    1.2
    3.1.0
    2.2


    
        taglibs
        standard
        ${standard.version}
        jar
    
    
        javax.servlet
        jstl
        ${jstl.version}
        jar
    
    
        javax.servlet
        javax.servlet-api
        ${servlet-api.verison}
        provided
    
    
        javax.servlet.jsp
        jsp-api
        ${jsp-api.version}
        provided
    

      注意:jstl必须在能够支持j2ee1.4/servlet2.4/jsp2.0版本上的容器才能运行,这个环境是目前较为常用的环境

标签库的使用:

     采用 taglib 指令引入

  <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

  <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

自定义函数库:

方法必须是 public static

WEB-INFWEB-INF 任意子目录下

  3、在jsp 中采用 taglib 指令引入自定义函数库

  4、采用 前缀+冒号(:)+函数名调用即可

例:

  DateUtils 

package com.bkc.bpmp.common.utils;

import java.util.Date;

import org.apache.commons.lang3.time.DateFormatUtils;

/**
 * 日期工具类, 继承org.apache.commons.lang.time.DateUtils类
 * 
 */
public class DateUtils extends org.apache.commons.lang3.time.DateUtils
{
    
    private static String[] parsePatterns = {
        "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM", 
        "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM",
        "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"};

    
    /**
     * 得到当前日期字符串 格式(yyyy-MM-dd) pattern可以为:"yyyy-MM-dd" "HH:mm:ss" "E"
     */
    public static String getDate(String pattern)
    {
        return DateFormatUtils.format(new Date(), pattern);
    }
}

  fns.tld 自定义标签




    
  JSTL 1.1 functions library
  JSTL functions sys
  1.1
  fns
  http://java.sun.com/jsp/jstl/functionss

  
  
    获取当前日期
    getDate
    com.bkc.bpmp.common.utils.DateUtils
    java.lang.String getDate(java.lang.String)
    ${fns:getDate(pattern)}  
  

在jsp 中引入该文件

<%@ taglib prefix="fns" uri="/WEB-INF/tlds/fns.tld" %>

prefix 对应 

fns

uri 对应 1) 该tlds 在项目中的路径

2) http://java.sun.com/jsp/jstl/functionss

  此路径则需要在 web.xml 中配置引进的路径

    
        
        java.sun.com/jsp/jstl/functionss    
        /WEB-INF/tld/fns.tld    
        

然后在jsp 中使用该标签 

${fns:getDate("yyyy-MM-dd HH:mm")}

注意:
可能出现的异常
1、The function xxx must be used with a prefix when a default namespace is not specified
--- 在jsp页面中调用方式不正确,可能将 ":" 写成了 "."

2、The function xxx cannot be located with the specified prefix
--- a) 类中定义的方法不是 public static 的方法
   b) 类中的方法名称和jsp自带的标签元素冲突,重名等。

以上就是关于“java怎么自定义jstl标签库”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注创新互联行业资讯频道。


网页标题:java怎么自定义jstl标签库
当前地址:http://myzitong.com/article/pedgoj.html