jstl中添加自定义的函数

转载自   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>  


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/329621.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多智能体强化学习_基于多智能体强化学习主宰星际争霸游戏

大家好&#xff0c;今天我们来介绍基于多智能体强化学习主宰星际争霸游戏这篇论文Grandmaster level in StarCraft II using multi-agent reinforcement learning​doi.org从Alphastar以后 利用强化学习的方法进行星际争霸2AI的又一大突破。Part1 前言游戏介绍(Introduction to…

2-计算机发展及应用

【README】 本文总结自B站 《计算机组成原理&#xff08;哈工大刘宏伟&#xff09;》的视频讲解&#xff0c;非常棒&#xff0c;墙裂推荐&#xff1b; 【1】计算机发展史 【1.1】计算机的产生和发展 【1.2】微型计算机的出现与发展 芯片上的晶体管的数量 与 cpu速度间 有没有关…

ASP.NET Core的配置(2):配置模型详解

在上面一章我们以实例演示的方式介绍了几种读取配置的几种方式&#xff0c;其中涉及到三个重要的对象&#xff0c;它们分别是承载结构化配置信息的Configuration&#xff0c;提供原始配置源数据的ConfigurationProvider&#xff0c;以及作为“中间人”的ConfigurationBuilder。…

Mysql的安装与远程登录

一、安装 &#xff08;1&#xff09;linux版A.linux普通版http://www.jb51.net/article/104107.htmB.ubuntu版 1.安装 sudo apt-get install mysql-server apt-get isntall mysql-client sudo apt-get install libmysqlclient-dev2.设置密码cd /etc/mysql vi debian.cnf ,得…

sqlserver如何定义一个静态变量_[Bazel]自定义规则实现将多个静态库合并为一个动态库或静态库...

1 前言2 自定义规则实现2.1 规则功能2.2 实现规则的理论基础2.3 规则代码实现3 总结4 参考资料1 前言为了实现如标题所述的将多个静态库合并为一个动态库&#xff0c;内置的 Bazel 规则是没有这个功能的&#xff0c;Bazel C/C 相关的内置规则有&#xff1a;cc_binary &#xff…

(转)base64编码(严格说来,base64不算作加解密算法)

【README】 1.本文转自&#xff1a; Java base64加密解密 - xuwc - 博客园参考&#xff1a; https://www.cnblogs.com/luguo3000/p/3940197.html https://blog.csdn.net/jiahao1186/article/detailhttps://www.cnblogs.com/xuwc/p/14058183.htmlhttps://zh.wikipedia.org/wik…

JavaWeb的web.xml标签元素(一)

普通信息标签 &#xff08;1&#xff09;display-name 定义了WEB应用的名字,在servletContextConfig display-name* XML语法&#xff1a;<display-name>AppName</display-name> &#xff08;2&#xff09;description 可以使用description元素来提供有关部署描述符…

python3多线程第三方库_Python3 多线程

Python3 多线程多线程类似于同时执行多个不同程序&#xff0c;多线程运行有如下优点&#xff1a;使用线程可以把占据长时间的程序中的任务放到后台去处理。用户界面可以更加吸引人&#xff0c;比如用户点击了一个按钮去触发某些事件的处理&#xff0c;可以弹出一个进度条来显示…

采用MiniProfiler监控EF与.NET MVC项目

今天来说说EF与MVC项目的性能检测和监控&#xff0c;相对本篇文章&#xff0c;更推荐大家使用另一个类似组件 NanoProfiler - 适合生产环境的性能监控类库 之 基本功能篇 首先,先介绍一下今天我们使用的工具吧. MiniProfiler~ 这个东西的介绍如下: MVC MiniProfiler是Stack Ove…

(转)公钥,私钥和数字签名这样最好理解

转自&#xff1a; 公钥&#xff0c;私钥和数字签名这样最好理解_21aspnet的博客-CSDN博客_公钥签名还是私钥签名一、公钥加密 假设一下&#xff0c;我找了两个数字&#xff0c;一个是1&#xff0c;一个是2。我喜欢2这个数字&#xff0c;就保留起来&#xff0c;不告诉你们(私钥…

JavaWeb的web.xml标签元素(二)

JavaWeb的web.xml标签元素&#xff08;一&#xff09; 九、session-config为Web应用中的javax.servlet.http.HttpSession对象定义参数 session-config-session-timeout?session-timeout元素用来指定默认的会话超时时间间隔&#xff0c;以分钟为单位。该元素值必须为整数。如果…

登录系统 提示框_实物资产管理软件操作手册(职员和系统用户)

一、职员和系统用户“职员和系统用户”菜单提供了对公司人员信息进行维护的功能&#xff0c;可以自定义职员编码、 姓名、用户名等相关职员信息。注意&#xff1a;职员编码、用户名需唯一&#xff0c;且用户名一旦保存则不可修改。根据要求可以将“用户类型”分为“职员”和“系…

HoloLens开发手记-凝视 Gaze

凝视 Gaze 在全息应用中&#xff0c;凝视是第一种输入形式&#xff0c;被用于定位物体&#xff08;功能和PC的光标指针类似&#xff09;。凝视告诉你用户正在看向世界中的位置&#xff0c;让你能够确定他们的意图。在现实世界中&#xff0c;你通常会盯着你打算与之交互的物体。…

摘要算法与加密(以MD5算法为例)

【README】 部分内容总结自&#xff1a; 摘要与加密的区别&#xff08;以MD5算法为例&#xff09; - 掘金https://juejin.cn/post/6844903561478799368 【1】摘要算法与加密区别 【1.1】摘要算法&#xff08;不可逆&#xff09; 1&#xff09;摘要算法&#xff1a; 说白了…

Oracle入门(三A)之sqlplus

转载自 sqlplus /nolog是什么意思sqlplus命令格式如下&#xff1a; 用法: SQLPLUS [ [<option>] [<logon>] [<start>] ] 其中 <option> :: -H | -V | [ [-M <o>] [-R <n>] [-S] ] <登录> :: <用户名>[/<口令>][<con…

.Net Core下如何管理配置文件

一、前言 根据该issues来看&#xff0c;System.Configuration在.net core中已经不存在了&#xff0c;那么取而代之的是由Microsoft.Extensions.Cnfiguration.XXX一系列的类库提供&#xff0c;对应的开源地址为点击这里。 从当前开源的代码来看&#xff0c;在.net core下提供了…

python短视频自动制作_Python 带你一键生成朋友圈超火的九宫格短视频

1. 场景如果你经常刷抖音和微信朋友圈&#xff0c;一定发现了最近九宫格短视频很火&#xff01;​从朋友圈九宫格图片&#xff0c;到九宫格视频&#xff0c;相比传统的图片视频&#xff0c;前者似乎更有个性和逼格除了传统的剪辑软件可以实现&#xff0c;是否有其他更加快捷方便…

3-系统总线

【README】 1.本文总结自B站 《计算机组成原理&#xff08;哈工大刘宏伟&#xff09;》的视频讲解&#xff0c;非常棒&#xff0c;墙裂推荐&#xff1b; 2.补充&#xff1a;冯洛伊曼计算机由5大部分组成&#xff1a; 1. 运算器2. 控制器3. 存储器4. 输入设备5. …

HashMap中傻傻分不清楚的那些概念

转载自 HashMap中傻傻分不清楚的那些概念 很多人在通过阅读源码的方式学习Java&#xff0c;这是个很好的方式。而JDK的源码自然是首选。在JDK的众多类中&#xff0c;我觉得HashMap及其相关的类是设计的比较好的。很多人读过HashMap的代码&#xff0c;不知道你们有没有和我一样&…

HoloLens开发手记-硬件细节 Hardware Detail

微软HoloLens是世界第一款完全无线缆的全息计算机。通过在新方式上赋予用户的全息体验&#xff0c;HoloLens重新定义了个人计算&#xff08;Personal Computing&#xff09;。为了将3D全息图形固定到你周围的真实世界中&#xff0c;HoloLens融合了最先进的光学元件和传感器。 设…