自定义jstl标签*
原文链接:https://www.it610.com/article/442039.htm
步骤如下:
1、写tld文档:用来指定标签的名字,标签库等。
2、写标签处理器类。
3、配置到web.xml中
4、在jsp中使用新定义的标签
例:实现一个自定义标签 功能如下 如果字符串长度超过规定长,则截取,并根据要求添加省略号
tls文档:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>2.0</jsp-version>
<short-name>ip</short-name>
<uri>http://www.xx.tag</uri>
<tag>
<name>stringCut</name>
<tag-class>com.xx.utils.jstl.JSTLStringCut</tag-class>
<attribute>
<name>str</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue><!-- 是否支持el表达式 -->
<type>java.lang.String</type>
<description>輸入字符串</description>
</attribute>
<attribute>
<name>length</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.Integer</type>
<description>要显示字符串的长度</description>
</attribute>
<attribute>
<name>showDot</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.Boolean</type>
<description>是否显示点号</description>
</attribute>
</tag>
</taglib>
标签处理器类:
package com.xx.utils.jstl; import java.io.IOException; import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.BodyTagSupport; public class JSTLStringCut extends BodyTagSupport{ private String str ;
private Integer length ;
private Boolean showDot; @Override
public int doStartTag() throws JspException {
System.out.println(str);
System.out.println(length);
System.out.println(showDot);
try {
if(str==null){
//do nothing
}else{
if(str.length()>length){
str=str.substring(,length);
if(showDot){
str=str+"...";
}
}
pageContext.getOut().print(str);
}
} catch (IOException e) {
e.printStackTrace();
}
return BodyTagSupport.EVAL_BODY_INCLUDE;//执行标签内容
} @Override
public int doEndTag() throws JspException {
return BodyTagSupport.EVAL_BODY_INCLUDE;
} public String getStr() {
return str;
} public void setStr(String str) {
this.str = str;
} public Integer getLength() {
return length;
} public void setLength(Integer length) {
this.length = length;
} public Boolean getShowDot() {
return showDot;
} public void setShowDot(Boolean showDot) {
this.showDot = showDot;
} }
配置到web.xml
<jsp-config>
<taglib>
<taglib-uri>http://www.xx.tag</taglib-uri>
<taglib-location>/WEB-INF/tags/string-cut.tld</taglib-location>
</taglib>
</jsp-config>
jsp中使用标签
jsp页面顶部加入:
<%@ taglib uri="http://www.xx.tag" prefix="ip" %>
<ip:stringCut str="${str}" length="" showDot="true"></ip:stringCut>
自定义jstl标签*的更多相关文章
- 自定义JSTL标签和函数库
一.自定义JSTL标签 1.编写标签处理类: (1)实现 SimpleTag 接口,通过 setJspContext()方法可以获取到 jspContext 对象,实际上也是 pageContext ...
- 如何自定义JSTL标签与SpringMVC 标签的属性中套JSTL标签报错的解决方法
如何自定义JSTL标签 1.创建一个类,从SimpleTagSupport继承 A) 通过继承可以获得当前JSP页面上的对象,如JspContext I) 实际上可以强转为PageContext II ...
- 自定义EL函数、自定义JSTL标签
自定义EL函数 1.做一个类(静态) package com.maya.el; public class ELBiaoDaoShi { public static String TiHuan(Stri ...
- 自定义jstl标签库
开发环境:Spring+SpringMVC +Maven +Mybatis JSTL 标签库的配置: 导入对应的 jstl.jar 和 standard.jar ,我使用的配置如下: <prop ...
- (十三)自定义JSTL标签
前面的博客,我们讲过了 自定义 el函数 : 讲一个 自定义标签技术 : 目录 自定义标签 快速入门:使用标签输出客户机IP 关于标签处理器类的方法 自定义标签功能扩展 传统标签 简单标签 配置简单标 ...
- 自定义jstl标签开发
从jsp1.1开始就可以在jsp页面中使用自定义标签了,使用自定义标签不但可以实现代码重用,而且可以使jsp代码更简洁.Jsp2.0的标签扩展API中又增加了SimpleTag接口和其实现类Simpl ...
- EL表达式、JSTL标签库
一.EL(Expression Language)表达式 语法结构:${var} 若要停用对EL表达式的评估的话,需要使用page指令将isELIgnored属性值设为true: <%@ pag ...
- JSP学习笔记(3)——JSTL 标签库
JSP Standard Tag Lib,名为JSP标准标签库,设计的目的主要用来方便我们将数据输出,而不是使用JSP中的语法<% %> <%= %> <%! %> ...
- 12 自定义标签/JSTL标签库/web国际化/java web之设计模式和案例
EL应用 自定义一个标签,实现两个字符串的相加 1回顾 1.1servlet生命周期 init(ServletConfig) service ...
随机推荐
- 有关配置网站时安装ZipArache的方法。
在配置网站初始化过程中,发现ZipArache需要启动,上网搜索了一番,发现安装ZipArache的步骤十分繁琐. 换一种思路,ZipArache作为PHP的拓展类,其名字首部有ZIP字样,那么可否直 ...
- Codeforces Round #599 (Div. 2) D. 0-1 MST(bfs+set)
Codeforces Round #599 (Div. 2) D. 0-1 MST Description Ujan has a lot of useless stuff in his drawers ...
- Hadoop学习之路(6)MapReduce自定义分区实现
MapReduce自带的分区器是HashPartitioner 原理:先对map输出的key求hash值,再模上reduce task个数,根据结果,决定此输出kv对,被匹配的reduce任务取走. ...
- 与soul上的一个妹子聊天有感
写此篇的原因: 妹子说,我考上公务员了~,当时自己自己顿时哽咽了,不知道说什么,习惯性的说了句,恭喜恭喜啊.感受到妹子的欢喜与喜悦,我也没必要打扰她的兴致,她开心就好了嘛. 每个人的成就都是自己奋斗的 ...
- git客户端的常用命令
注意:仓库只有管理员建的你才有权限上传,不然自己建的也没用,没权限上传 1.远程仓库路径查询 git remote -v 2.添加远程仓库 git remote add origin <你的项目 ...
- Joomla 3.0.0 --> 3.4.6-RCE复现
Joomla是一款网站管理系统CMS,最近曝出其3.00-3.4.6的joomla版本存在一个RCE漏洞. 并且大佬已将exp放在了github上,下载地址:https://www.exploit-d ...
- sqli-labs less-11 --> less-12
Less-11(报错注入POST方式) 1.判断是否存在注入点 因为是POST 方式的与GET方式稍有不同,可以选择使用burp suite以及火狐的hackbar进行操作,直接在输入框usernam ...
- 1、微服务--为什么有consul,consul注册,心跳检测,服务发现
一.为什么有consul? 在微服务,每1个服务都是集群式的,订单服务在10台服务器上都有,那么用户的请求到达,获取哪台服务器的订单服务呢?如果10台中的有的订单服务挂了怎么办?10台服务器扛不住了, ...
- Winform中怎样设置ContextMenuStrip右键菜单的选项ToolStripMenuItem添加照片
场景 怎样在Winform程序中添加鼠标右键时使子选项显示图片. 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi关注公众号 霸道的程序猿 获取编程 ...
- 通过otter元数据表获取有用的信息
获取数据源相关信息 原始数据: +----+------+-------+--------------------------------------------------------------- ...