Jsp开发自定义标签,自定义标签将字符串转成指定的时间格式显示
本例以将 字符串格式的时间转成指定的时间格式显示。
第一步、定义一个标签处理程序类,需要集成javax.servlet.jsp.tagext.TagSupport,代码如下:
import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Calendar; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.TagSupport; /** * 自定义的时间处理标签 * */ public class JSTLDateTag extends TagSupport { /** * */ private static final long serialVersionUID = -8683014812426654300L; private String value;//对应jstl表达式中的value值 private String parttern;//对应表达式中的partern指定的时间格式 public int doStartTag() throws JspException { String vv = String.valueOf(value); long time = Long.valueOf(vv); Calendar c = Calendar.getInstance(); c.setTimeInMillis(time); SimpleDateFormat dateformat = new SimpleDateFormat(parttern); String s = dateformat.format(c.getTime()); try { pageContext.getOut().write(s); } catch (IOException e) { e.printStackTrace(); } return super.doStartTag(); } public String getValue() { return value; } public void setValue(String value) { this.value = value; } public String getParttern() { return parttern; } public void setParttern(String parttern) { this.parttern = parttern; } }
第二步、编写一个tld格式的文件。(格式类似于xml格式的文件)如下:dateformat.tld
<?xml version="1.0" encoding="UTF-8"?> <taglib> <tlib-version>1.1</tlib-version> <jsp-version>1.2</jsp-version> <short-name>date</short-name> <tag> <name>stringToDate</name> <tag-class>com.xxx.JSTLDateTag</tag-class><!-- 刚才写的那个标签处理类--> <attribute> <name>value</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>parttern</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag> </taglib>
第三步、在web.xml中加入配置,找到web.xml中的<jsp-config>节点加入<taglib>配置,代码如下:
<jsp-config> <taglib> <taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri> <taglib-location>/WEB-INF/tld/c.tld</taglib-location> </taglib> <!-- 自定义JSTL时间格式化 --> <taglib> <taglib-uri>/datetag</taglib-uri> <!-- 注意这里的 '/datetag',下面就要用到 --> <taglib-location>/WEB-INF/tld/dateformat.tld</taglib-location> </taglib> </jsp-config>
第四步、在jsp页面中使用自定义标签,如下
<%@ taglib uri="/datetag" prefix="fmtDate"%> <fmtDate:stringToDate parttern="yyyy-MM-dd HH:mm:ss" value="${hotContent.createDate}"></fmtDate:stringToDate>
如果我的文章对你有帮助,欢迎微信支付打赏。

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构