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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

jstl中添加自定义的函数

發(fā)布時(shí)間:2023/12/3 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jstl中添加自定义的函数 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn)載自? ?jstl中添加自定義的函數(shù)

?由于jstl中提供的函數(shù)未必能夠滿足我們的要求,而我們又希望能夠像jstl提供的函數(shù)那樣能夠輕松方便使用,那么可以通過(guò)自定義函數(shù)補(bǔ)充jsltl函數(shù)。給jstl添加自定義函數(shù)需要以下步驟:

  • 定義一個(gè)static的public的方法unescape(),如:
package com.rrtong.util; public class Common { /*實(shí)現(xiàn)js的unescapse解碼*/ public static String unescape(String src) { StringBuffer tmp = new StringBuffer(); tmp.ensureCapacity(src.length()); int lastPos = 0, pos = 0; char ch; while (lastPos < src.length()) { pos = src.indexOf("%", lastPos); if (pos == lastPos) { if (src.charAt(pos + 1) == 'u') { ch = (char) Integer.parseInt(src .substring(pos + 2, pos + 6), 16); tmp.append(ch); lastPos = pos + 6; } else { ch = (char) Integer.parseInt(src .substring(pos + 1, pos + 3), 16); tmp.append(ch); lastPos = pos + 3; } } else { if (pos == -1) { tmp.append(src.substring(lastPos)); lastPos = src.length(); } else { tmp.append(src.substring(lastPos, pos)); lastPos = pos; } } } return tmp.toString(); } }
  • 定義一個(gè)unescape.tld的文件,并將該文件放在WEB-INF/jstl/目錄下(這個(gè)可以根據(jù)個(gè)人需要定義位置)。
<?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>unescape</description> <display-name>unescape</display-name> <tlib-version>1.0</tlib-version> <short-name>unescape</short-name> <uri>http://java.sun.com/jsp/jstl/rrtong</uri> <function> <name>unescape</name> <function-class>com.rrtong.util.Common</function-class> <function-signature>java.lang.String unescape(java.lang.String)</function-signature> </function> </taglib>
注意?

????????? uri:是很重要標(biāo)識(shí),雖然網(wǎng)上說(shuō)可以隨意定義,但由于是要引用到j(luò)sp文件中,所以不能跟已有的標(biāo)識(shí)重復(fù)如http://java.sun.com/jsp/jstl/functions,否則會(huì)覆蓋掉原有定義的jstl方法。

???????? name:jstl函數(shù)別名,保持與靜態(tài)方法名一致就可以了

???????? function-class:引用的類名,需要完整路徑

???????? function-signature:用法說(shuō)明,除了基本類型外,其他類型都必須寫完整的路徑

  • 在web.xml配置unescape.tld

????????????? 在<jsp-config>標(biāo)簽中添加以下配置代碼,若沒有<jsp-config>,則直接創(chuàng)建<jsp-config>,重啟tomcat

<jsp-config> <taglib> <taglib-uri>http://java.sun.com/jsp/jstl/rrtong</taglib-uri> <taglib-location>/WEB-INF/jstl/unescape.tld</taglib-location> </taglib> <jsp-config>
  • 在代碼中引用unescape()方法

?在jsp文件頭中添加引用代碼

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/rrtong"%> ?prefix:表示別名,允許與其他標(biāo)簽的別名一致。以下為調(diào)用unescape()方法位置

<div class="mesageMid">${fn:unescape(videoComment.content)}</div>

總結(jié)

以上是生活随笔為你收集整理的jstl中添加自定义的函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。