Tablib指令表示定义一个标签库以及其自定义标签的前缀,其语法格式为:
<%@taglib prefix="tagPrefix" uri="URIToTagLibrary" tagdir="" %>
其中:prefix表示自定义标签之前的前缀,如<c:if>当中的c就是通过这个属性定义的,如果不定义系统中是会报错的。
uri表示URI(Uniform Resource Identifier)根据标签的前缀对自定义的标签进行唯一地命名(或者说类库的地址),它可以是URL(Uniform Resource Locator)或URN(Uniform Resource Name),一个相对或绝对的路径。
tagdir: 区别于uri属性,uri属性告知的是具体TLD标签文件的目录。要是想使用一个没有创建TLD的标签文件,你必须将这个标签文件保存在WEB-INF/tags目录下,这样就告诉容器在这个目录下所找到的所有标签文件都属于同一个标签库。
(具体可以参考:http://toyota2006.iteye.com/blog/26575)
需要注意的是:在使用自定义标签之前必须使用“<%@taglib %>”指令将标签引入到页面,而且可以在一个页面中多次使用,但是前缀必须唯一。
2、在项目中导入或使用使用标签:
a、导入系统中已经存在的标签,如常用的c标签:
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
b、导入自定义的标签:
首先需要自定义一个java类(UFunction.java),用来实现自定义标签的各个方法。
package com.wjl.taglib; /** * 定义El自定义函数来截取字符串 * */ public class UFunction { /** * 获取一个字符串的长度 * @param str 需要进行长度计算的字符串 * @return int 字符串的长度 * */ public static int getLen(String str){ return str.length();//调用String的length方法获取当前字符串长度 } /** * 截取字符串 * @param str:需要进行截取的字符串 * @param start:开始截取的位置 * @param end:结束截取的位置 * @return String:按照要求截取之后的结果 * */ public static String substr(String str,int start,int end){ return str.substring(start,end);//调用String的substring方法进行截取 } /** * 两数相除获取整数结果 * @param first:除数 * @param second:被除数 * @return int:两数相除获取整数结果 * */ public static int getResult(int first,int second){ return first/second;//两数相除(暂时不作被除数为0的考虑) } }
然后在WEB-INF下面建立一个tld(myTag.tld)文件用来说明自定义标签的基本信息,如版本、简写、都有哪些方法等。
<?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"> <tlib-version>1.0</tlib-version> <short-name>len</short-name> <function> <description>get the string length</description><!-- 对这个EL方法进行描述 --> <name>getLen</name><!-- 调用El方法的名字 --> <function-class>com.wjl.taglib.UFunction</function-class><!-- 所使用的类 --> <function-signature>int getLen(java.lang.String)</function-signature> <example>${len:getLen(str)}</example><!-- 举例 --> </function> <function> <description>substring</description> <name>substr</name> <function-class>com.wjl.taglib.UFunction</function-class> <function-signature>java.lang.String substr(java.lang.String,int,int)</function-signature> </function> <function> <description>getResult</description> <name>getResult</name> <function-class>com.wjl.taglib.UFunction</function-class> <function-signature>int getResult(int,int)</function-signature> </function> </taglib>
最后新建一个jsp页面进行测试:
<body> <c:set var="str" value="自定义函数,做一个截取字符串长度的测试"></c:set> 字符串内容为:${str }<br /><br /> 字符串长度为:${myTag:getLen(str)}<br /><br /> 字符串截取前五个字符串:${myTag:substr(str,0,5)}<br /><br /> 10除以2的结果为:${myTag:getResult(10,2)}<br /><br /> <!-- 若是字符过长只显示前10,后面的用省略号代替 --> <c:choose> <c:when test="${myTag:getLen(str)>10}"> <c:out value="${myTag:substr(str,0,10)}......"></c:out> </c:when> <c:otherwise> <c:out value="${str}"></c:out> </c:otherwise> </c:choose> </body>
注意:记得导入标签库。
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@taglib prefix="myTag" uri="/WEB-INF/myTag.tld" %>
也可以参考我的另一篇博文:JSTL截取字符串
相关推荐
开源项目-agrison-go-tablib.zip,go-tablib – Tabular Dataset Library, Go Port of Python's tablib
java分页标签 pager-tablib 分页的工具类jar包
资源分类:Python库 所属语言:Python 资源全名:cliff-tablib-2.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
NULL 博文链接:https://dql188.iteye.com/blog/376280
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
强大,高效的分页标签
python表格生成工具插件:tablib-0.11.5.tar.gz,用于生成表格。
tablib简介tablib为requests作者kennethreitz维护,支持python2到python3.简单的说就是一个通用的数据集,操作类似数据库
Struts2 标签库 [Tablib]
资源来自pypi官网。 资源全名:pyramid_tablib-0.2.tar.gz
Struts2_Tablib 能用的标签库
python离线安装包,亲测可用
Tablib 是一个与表格格式数据有关的 Python 库,允许导入、导出、管理表格格式数据。特性 1 导出/导入格式Excel (Sets Books)JSON (Sets Books)YAML (Sets Books)HTML (Sets)TSV (Sets)CSV (Sets) 2 数据操作...
很好用的分页框架,对整个项目都是通用的。很省事的!
struts2 标签库详细介绍,带有例子
入门通过在 .ini 中设置包含或通过调用 config.include('pyramid_tablib') 来包含 pyramid_tablib。 pyramid.includes = pyramid_tablib现在在你看来 @ view_config ( route_name = 'users+xlsx' , renderer = 'xlsx...
本文实例讲述了Python使用tablib生成excel文件的方法。分享给大家供大家参考,具体如下: import tablib headers = ('lie1', 'lie2', 'lie3', 'lie4', 'lie5') mylist = [('23','23','34','23','34'),('sadf','23',...