日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

自定义jstl标签库

發布時間:2024/1/17 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 自定义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" %>

自定義函數庫:

  1、定義類和方法 (方法必須是 public static

  2、編寫自定義 tld 方法,并且將此文件放到 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自帶的標簽元素沖突,重名等

參考鏈接:http://blog.csdn.net/wlxtaking/article/details/5050616

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的自定义jstl标签库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。