自定义jstl标签库
开发环境:Spring+SpringMVC +Maven +Mybatis
JSTL 标签库的配置:
导入对应的 jstl.jar 和 standard.jar ,我使用的配置如下:
<properties><standard.version>1.1.2</standard.version><jstl.version>1.2</jstl.version><servlet-api.verison>3.1.0</servlet-api.verison><jsp-api.version>2.2</jsp-api.version> </properties> </dependencies><dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>${standard.version}</version><type>jar</type></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>${jstl.version}</version><type>jar</type></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>${servlet-api.verison}</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>${jsp-api.version}</version><scope>provided</scope></dependency> </dependencies>
注意:jstl必须在能够支持j2ee1.4/servlet2.4/jsp2.0版本上的容器才能运行,这个环境是目前较为常用的环境
标签库的使用:
采用 taglib 指令引入
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
自定义函数库:
1、定义类和方法 (方法必须是 public static)
2、编写自定义 tld 方法,并且将此文件放到 WEB-INF 或 WEB-INF 任意子目录下
3、在jsp 中采用 taglib 指令引入自定义函数库
4、采用 前缀+冒号(:)+函数名 调用即可
例:
DateUtils
package com.bkc.bpmp.common.utils;import java.util.Date;import org.apache.commons.lang3.time.DateFormatUtils;/*** 日期工具类, 继承org.apache.commons.lang.time.DateUtils类* */ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {private static String[] parsePatterns = {"yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM", "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM","yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"};/*** 得到当前日期字符串 格式(yyyy-MM-dd) pattern可以为:"yyyy-MM-dd" "HH:mm:ss" "E"*/public static String getDate(String pattern){return DateFormatUtils.format(new Date(), pattern);} }
fns.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"><description>JSTL 1.1 functions library</description><display-name>JSTL functions sys</display-name><tlib-version>1.1</tlib-version><short-name>fns</short-name><uri>http://java.sun.com/jsp/jstl/functionss</uri><!-- DateUtils --><function><description>获取当前日期</description><name>getDate</name><function-class>com.bkc.bpmp.common.utils.DateUtils</function-class><function-signature>java.lang.String getDate(java.lang.String)</function-signature><example>${fns:getDate(pattern)}</example> </function> </taglib>
在jsp 中引入该文件
<%@ taglib prefix="fns" uri="/WEB-INF/tlds/fns.tld" %>
prefix 对应
<short-name>fns</short-name>
uri 对应 1) 该tlds 在项目中的路径
2) <uri>http://java.sun.com/jsp/jstl/functionss</uri>
此路径则需要在 web.xml 中配置引进的路径
<jsp-config> <taglib> <taglib-uri>java.sun.com/jsp/jstl/functionss</taglib-uri> <taglib-location>/WEB-INF/tld/fns.tld</taglib-location> </taglib> </jsp-config>
然后在jsp 中使用该标签
${fns:getDate("yyyy-MM-dd HH:mm")}
注意:
可能出现的异常
1、The function xxx must be used with a prefix when a default namespace is not specified
--- 在jsp页面中调用方式不正确,可能将 ":" 写成了 "."
2、The function xxx cannot be located with the specified prefix
--- a) 类中定义的方法不是 public static 的方法
b) 类中的方法名称和jsp自带的标签元素冲突,重名等
参考链接:http://blog.csdn.net/wlxtaking/article/details/5050616
自定义jstl标签库相关推荐
- Java-Web JSTL标签库、自定义标签库和MVC设计模式
目录 一.JSTL标签库 1.什么是JSTL 2.JSTL标签库 3.使用taglib指令导入标签库 4.core标签库常用标签 (1)out和set (2)remove (3)url (4)if ( ...
- 学会怎样使用Jsp 内置标签、jstl标签库及自定义标签
学习jsp不得不学习jsp标签,一般来说,对于一个jsp开发者,可以理解为jsp页面中出现的java代码越少,对jsp的掌握就越好,而替换掉java代码的重要方式就是使用jsp标签. jsp标签的分 ...
- JAVAWEB开发之JSTL标签库的使用、 自定义EL函数、自定义标签(带属性的、带标签体的)
JSTL JSTL简介: JSTL的全称:JSP Standard Tag Library,JSP标准标签库 JSTL的作用: 提供给Java Web开发人员一个标准通用的标签函数库 和EL ...
- 自定义标签JSTL标签库详解
自定义标签是JavaWeb的一部分非常重要的核心功能,我们之前就说过,JSP规范说的很清楚,就是Jsp页面中禁止编写一行Java代码,就是最好不要有Java脚本片段,下面就来看一下自定义标签的简 ...
- JavaWeb(五)之JSTL标签库
前言 前面介绍了EL表达式,其实EL表达式基本上是和JSTL核心标签库搭配一起使用才能发挥效果的.接下来让我们一起来认识一下吧! 在之前我们学过在JSP页面上为了不使用脚本,所以我们有了JSP内置的行 ...
- javaweb学习总结(二十八)——JSTL标签库之核心标签
一.JSTL标签库介绍 JSTL标签库的使用是为弥补html标签的不足,规范自定义标签的使用而诞生的.使用JSLT标签的目的就是不希望在jsp页面中出现java逻辑代码 二.JSTL标签库的分类 核心 ...
- Struts标签、Ognl表达式、el表达式、jstl标签库这四者之间的关系和各自作用
来自:http://blog.csdn.net/love_you_99/article/details/8184797 一 介绍 1.Struts2的作用 Struts2标签库提供了主题.模板支持,极 ...
- java将xml中的标签名称转为小写_深入学习Java Web(七): JSTL标签库
本文转自与博客园一杯凉茶的博客. 在之前我们学过在JSP页面上为了不使用脚本,所以我们有了JSP内置的行为.行为只能提供一小部分的功能,大多数的时候还是会用java脚本,接着就使用了EL表达式,基本上 ...
- jsp导入jstl标签库_EE JSP:使用JSTL标记库生成动态内容
jsp导入jstl标签库 除了在JSP中编写自己的定制标记之外,您还将发现Java EE实际上提供了一组Java标准标记库(JSTL)供您使用. 这些内置标签包括重复(for-loop)标签,条件标签 ...
最新文章
- shell编程 字符串处理
- bzoj 3365: [Usaco2004 Feb]Distance Statistics 路程统计【容斥原理+点分治】
- data too long for column的解决方法
- Vue2.0使用嵌套路由实现页面内容切换/公用一级菜单控制页面内容切换
- JS实现生成一个周对应日期数组
- 在碎片化阅读充斥眼球的时代,要高效读论文
- 查看防火墙_在 Centos8 上使用 systemctl 防火墙服务
- 计算机键盘的区域,刘坚强办公学《新手学五笔打字》1-1 键盘区域的划分
- db2mysql下载_db2SQL命令
- mean shift segmentation matlab,Mean Shift图像分割算法的并行化
- Word自动目录字体过大,如何全选并修改样式
- cubeIDE快速开发流程
- 基于Cassandra的分布式存储数据一致性算法研究
- 淘宝购买的ESP-CAM+SD内存卡做一个200W像素的相机arduino IDE开发过程
- 团队建设(Team building)就是等于组织大家一起吃饭娱乐吗?
- xdm,程序员外包能干吗?
- 房多多,没有拼多多的命
- 台式机电源相关参数说明
- Thread详解一(interrupt)
- “撸啊”不止能秒杀!| lua+redis实现高并发抢令牌
热门文章
- 无盘机服务器,无盘服务器操作系统
- linux环境没有bzip2,Linux系统中安装使用Bzip2来压缩文件的方法讲解
- php禁止代理ip访问_php禁止某ip或ip地址段访问的方法(转载)
- Linux系统openssl测试指导,Linux管理员必用:OpenSSL服务器测试技巧
- 绕过html标签,巧妙绕过WAF的XSS技巧
- 泸州计算机专业学院,泸州计算机专业中职推荐
- php warning date(),lnmp打开cacti时提示PHP Warning: date()
- 台式计算机由哪些硬件组成,台式电脑硬件是由哪些组成的 - 卡饭网
- 两个计算机系统安装,如何在一台电脑上同时重装两个系统|戴尔电脑怎么安装两个系统...
- 数据分析Python:sklearn数据预处理中fit(),transform()与fit_transform()的区别