jstl中添加自定义的函数
由于jstl中提供的函数未必能够满足我们的要求,而我们又希望能够像jstl提供的函数那样能够轻松方便使用,那么可以通过自定义函数补充jsltl函数。给jstl添加自定义函数需要以下步骤:
- 定义一个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中添加自定义的函数的更多相关文章
- jQuery中添加自定义或函数方法
<script type="text/javascript"> (function () { $.fn.parHy = function (val) { alert(v ...
- JSTL中EL表达式无法直接取size的处理
jsp中使用${list.size }会编译成list.getSize()方法,并不能获取list的长度,因为程序回去找List对象中的getSize()方法,所以只能想别的办法, 一种方法是在后台程 ...
- EL表达式 JSTL中的常用EL函数 动态数据的国际化
ELppt: EL 全名为Expression Language.EL主要作用: 获取数据: •EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象.获取数据.( ...
- Jmeter函数助手中添加自定义函数
最近,群里的牛肉面大神有个需求,是将每个post请求的body部分做一个加密操作,其实这个需求不算难,用beanshell引入加密函数的包,然后调用就行了.只是,如果请求多了,每次都要调用一下自己加密 ...
- JSTL中foreach与fn表达式
在jstl中的fn标签也是我们在网页设计中经常要用到的很关键的标签,在使用的时候要先加上头 <%@ taglib uri=" http://java.sun.com/jsp/jstl/ ...
- JSTL中c:forEach循环里的值的substr操作及对String操作的常用API
<c:forEach items="${dataList}" var="item" varStatus="itemStatus"> ...
- 在OpenSSL中添加自定义加密算法
一.简介 本文以添加自定义算法EVP_ssf33为例,介绍在OpenSSL中添加自定义加密算法的方法 二.步骤 1.修改crypto/object/objects.txt,注册算法OID,如下: rs ...
- LoadRunner中的Web 函数列表
LoadRunner中的Web 函数列表 web test LoadRunner fuction_list D:\Program Files (x86)\Mercury Interactive\Mer ...
- Python3中的字符串函数学习总结
这篇文章主要介绍了Python3中的字符串函数学习总结,本文讲解了格式化类方法.查找 & 替换类方法.拆分 & 组合类方法等内容,需要的朋友可以参考下. Sequence Types ...
随机推荐
- linux使用su切换用户提示 Authentication failure的解决方法& 复制文件时,报cp: omitting directory `XXX'
linux使用su切换用户提示 Authentication failure的解决方法:这个问题产生的原因是由于ubtun系统默认是没有激活root用户的,需要我们手工进行操作,在命令行界面下,或者在 ...
- 解决wordpress上传的文件尺寸超过 php.ini 中定义的 upload_max_filesize 值。
上传的文件尺寸超过 php.ini 中定义的 upload_max_filesize 值. 解决方法:修改/etc/php5/apache2/php.ini文件中的 post_max_size = 6 ...
- 2016 Web 开发资源工具大搜罗
原文链接: 100+ Awesome Web Development Tools and Resources Web的迅猛发展对于开发者来说既是一件好事也是一件坏事.不断紧跟潮流学习新的技术.编程语言 ...
- 【转】BlueDroid介绍
原文网址:http://www.cnblogs.com/hzl6255/p/3887547.html 自从Android 4.2开始,Android开始使用自己的蓝牙协议栈BlueDroid,而不是b ...
- Web开发需要关注的技术细节
摘要:在网站发布前,开发者需要关注有许多的技术细节,比如接口设计.用户体验.安全性.Web标准.性能.SEO等,倘若一个疏忽就会影响到整体的体验效果.作为一名Web开发者,哪些技术细节需要考虑呢? [ ...
- Joomla必备模块(转自joomla8)
1.Akeeba Backup Core-joomla!网站备份组件. 不论是国内收费主机还是国外的收费主机甚至是免费主机,都必须考虑到数据安全问题.没有哪个主机商可以保证你的网站数据不会丢失,况且很 ...
- php 生成mysql数据字典代码
由于项目开发用了比较多的表 ,为了快速获取数据字典,通过php代码的方式来获取表结构和表注释.代码如下: <?php /** * 生成mysql数据字典 */ header ( "Co ...
- ByteBuffer使用之道
缓冲区分配和包装 在能够读和写之前,必须有一个缓冲区,用静态方法 allocate() 来分配缓冲区: ByteBuffer buffer = ByteBuffer.allocate(1024); ...
- 在code.org上自己写一个flappy bird游戏
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:在code.org上自己写一个flappy bird游戏.
- VS扩展CodeMaid代码整理插件
本文章转载:http://www.cnblogs.com/wintersun/p/3577039.html 官方地址:http://www.codemaid.net/ 开源VS扩展CodeMaid介绍 ...