jstl中添加自定义的函数
2014-08-12 09:43
323 查看
由于jstl中提供的函数未必能够满足我们的要求,而我们又希望能够像jstl提供的函数那样能够轻松方便使用,那么可以通过自定义函数补充jsltl函数。给jstl添加自定义函数需要以下步骤:
定义一个static的public的方法unescape(),如:
定义一个unescape.tld的文件,并将该文件放在WEB-INF/jstl/目录下(这个可以根据个人需要定义位置)。
注意
uri:是很重要标识,虽然网上说可以随意定义,但由于是要引用到jsp文件中,所以不能跟已有的标识重复如http://java.sun.com/jsp/jstl/functions,否则会覆盖掉原有定义的jstl方法。
name:jstl函数别名,保持与静态方法名一致就可以了
function-class:引用的类名,需要完整路径
function-signature:用法说明,除了基本类型外,其他类型都必须写完整的路径
在web.xml配置unescape.tld
在<jsp-config>标签中添加以下配置代码,若没有<jsp-config>,则直接创建<jsp-config>,重启tomcat
在代码中引用unescape()方法
在jsp文件头中添加引用代码
定义一个static的public的方法unescape(),如:
package com.rrtong.util; public class Common { /*实现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(); } }
定义一个unescape.tld的文件,并将该文件放在WEB-INF/jstl/目录下(这个可以根据个人需要定义位置)。
<?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:是很重要标识,虽然网上说可以随意定义,但由于是要引用到jsp文件中,所以不能跟已有的标识重复如http://java.sun.com/jsp/jstl/functions,否则会覆盖掉原有定义的jstl方法。
name:jstl函数别名,保持与静态方法名一致就可以了
function-class:引用的类名,需要完整路径
function-signature:用法说明,除了基本类型外,其他类型都必须写完整的路径
在web.xml配置unescape.tld
在<jsp-config>标签中添加以下配置代码,若没有<jsp-config>,则直接创建<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:表示别名,允许与其他标签的别名一致。以下为调用unescape()方法位置
<div class="mesageMid">${fn:unescape(videoComment.content)}</div>
相关文章推荐
- jstl中添加自定义的函数
- 如何在windows批处理中添加自定义函数
- vc 添加自定义消息及消息处理函数分5步
- 织梦CMS/Dedecms添加自定义函数
- 给MySQL添加http-udf,http-json等自定义函数
- jQuery中添加自定义或函数方式
- vc 添加自定义消息及消息处理函数分5步
- JS自定义功能函数实现动态添加网址参数修改网址参数值
- FastReport添加自定义函数重复的问题
- 自定义JSTL标签函数步骤详解
- jstl——自定义函数步骤
- Qt中添加自定义Slot函数的方法(VS2010+Qt4.7.0)
- VBA中用自定义函数在工作表中添加动态图表
- jQuery中添加自定义或函数方法
- error C2833 MFC添加任意自定义函数报错 解决方法
- Dedecms5.5如何添加自定义函数
- 如何自定义JSTL标签(在oa系统中用JSTL函数解决即时认证问题)
- ucos II 下用户自定义中断函数的添加
- hive中添加自定义udf udaf udtf等函数的jar文件的三种方法
- jQuery中添加自定义或函数方法