中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java怎么自定義jstl標簽庫

發布時間:2022-12-05 18:01:07 來源:億速云 閱讀:134 作者:iii 欄目:編程語言

這篇“java怎么自定義jstl標簽庫”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“java怎么自定義jstl標簽庫”文章吧。

開發環境:Spring+SpringMVC +Maven +Mybatis

JSTL 標簽庫的配置:

  導入對應的 jstl.jar 和 standard.jar ,我使用的配置如下:

<properties>
    <standard.version>1.1.2</standard.version>
    <jstl.version>1.2</jstl.version>
    <servlet-api.verison>3.1.0</servlet-api.verison>
    <jsp-api.version>2.2</jsp-api.version>
</properties>
</dependencies>
    <dependency>
        <groupId>taglibs</groupId>
        <artifactId>standard</artifactId>
        <version>${standard.version}</version>
        <type>jar</type>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>${jstl.version}</version>
        <type>jar</type>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>${servlet-api.verison}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
        <version>${jsp-api.version}</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

      注意: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 自定義標簽

<?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">
    
  <description>JSTL 1.1 functions library</description>
  <display-name>JSTL functions sys</display-name>
  <tlib-version>1.1</tlib-version>
  <short-name>fns</short-name>
  <uri>http://java.sun.com/jsp/jstl/functionss</uri>

  <!-- DateUtils -->
  <function>
    <description>獲取當前日期</description>
    <name>getDate</name>
    <function-class>com.bkc.bpmp.common.utils.DateUtils</function-class>
    <function-signature>java.lang.String getDate(java.lang.String)</function-signature>
    <example>${fns:getDate(pattern)}</example>  
  </function>
</taglib>

在jsp 中引入該文件

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

prefix 對應 

<short-name>fns</short-name>

uri 對應 1) 該tlds 在項目中的路徑

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

  此路徑則需要在 web.xml 中配置引進的路徑

<jsp-config>    
    <taglib>    
        <taglib-uri>java.sun.com/jsp/jstl/functionss</taglib-uri>    
        <taglib-location>/WEB-INF/tld/fns.tld</taglib-location>    
    </taglib>    
</jsp-config>

然后在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標簽庫”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

湛江市| 永和县| 宁强县| 七台河市| 和硕县| 抚松县| 嘉兴市| 孙吴县| 米易县| 无棣县| 磐石市| 巩留县| 宜宾县| 安图县| 海原县| 福贡县| 双鸭山市| 东乡族自治县| 博罗县| 府谷县| 涿州市| 闽侯县| 宣化县| 永吉县| 余姚市| 张家界市| 子长县| 灯塔市| 奉贤区| 南岸区| 田阳县| 织金县| 格尔木市| 岗巴县| 日喀则市| 景泰县| 阳山县| 商水县| 醴陵市| 井冈山市| 射阳县|