這篇“java怎么自定義jstl標(biāo)簽庫(kù)”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“java怎么自定義jstl標(biāo)簽庫(kù)”文章吧。
成都創(chuàng)新互聯(lián)是專業(yè)的淮南網(wǎng)站建設(shè)公司,淮南接單;提供做網(wǎng)站、網(wǎng)站設(shè)計(jì),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行淮南網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
開發(fā)環(huán)境:Spring+SpringMVC +Maven +Mybatis
JSTL 標(biāo)簽庫(kù)的配置:
導(dǎo)入對(duì)應(yīng)的 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版本上的容器才能運(yùn)行,這個(gè)環(huán)境是目前較為常用的環(huán)境
標(biāo)簽庫(kù)的使用:
采用 taglib 指令引入
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
自定義函數(shù)庫(kù):
方法必須是 public static)
WEB-INF或 WEB-INF 任意子目錄下
3、在jsp 中采用 taglib 指令引入自定義函數(shù)庫(kù)
4、采用 前綴+冒號(hào)(:)+函數(shù)名調(diào)用即可
例:
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"}; /** * 得到當(dāng)前日期字符串 格式(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 自定義標(biāo)簽
JSTL 1.1 functions library JSTL functions sys 1.1 fns http://java.sun.com/jsp/jstl/functionss 獲取當(dāng)前日期 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 對(duì)應(yīng)
fns
uri 對(duì)應(yīng) 1) 該tlds 在項(xiàng)目中的路徑
2)http://java.sun.com/jsp/jstl/functionss
此路徑則需要在 web.xml 中配置引進(jìn)的路徑
java.sun.com/jsp/jstl/functionss /WEB-INF/tld/fns.tld
然后在jsp 中使用該標(biāo)簽
${fns:getDate("yyyy-MM-dd HH:mm")}
注意:
可能出現(xiàn)的異常
1、The function xxx must be used with a prefix when a default namespace is not specified
--- 在jsp頁(yè)面中調(diào)用方式不正確,可能將 ":" 寫成了 "."
2、The function xxx cannot be located with the specified prefix
--- a) 類中定義的方法不是 public static 的方法
b) 類中的方法名稱和jsp自帶的標(biāo)簽元素沖突,重名等。
以上就是關(guān)于“java怎么自定義jstl標(biāo)簽庫(kù)”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。