当前位置: 首页 > news >正文

JSTL 自定义

自定义标签

package taglibs;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.Tag;

public class DateTag implements Tag{
 private PageContext pageContext;
 private Tag tag;
 
 public int doEndTag() throws JspException {
  try{
   Date date=new Date();//定义日期
   SimpleDateFormat dateFormater=new SimpleDateFormat("yyyy年MM月dd日");//日期格式
   pageContext.getOut().print(dateFormater.format(date));
  }catch(IOException e){
   e.printStackTrace();
  }
  return Tag.EVAL_PAGE;
 }

 public int doStartTag() throws JspException {//开始标签
  return Tag.SKIP_BODY;
 }

 public Tag getParent() {
  return null;
 }

 public void release() {}

 public void setPageContext(PageContext pageContext) {
  this.pageContext=pageContext;
 }

 public void setParent(Tag parent) {
  this.tag=parent;
 }
}

 

标签库配置

<?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>1.2</jsp-version>
 <short-name>dateTagExample</short-name>
 <uri>/mytags</uri>
 <tag>
  <name>date</name>
  <tag-class>taglibs.DateTag</tag-class>
  <body-content>empty</body-content>
 </tag>
</taglib>

 


调用自定义标签

<%@ page language="java" import="java.util.*" contentType="text/html;charset=gb2312" pageEncoding="gb2312"%>
<%@ taglib uri="/WEB-INF/datetag.tld"  prefix="mytags"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
   
    <title>自定义标签示例</title>
   
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">   
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->

  </head>
 
  <body>
    <font size="2">
    下面是使用自定义标签输出的内容:<br>
    <mytags:date/>
    </font>
  </body>
</html>

 

相关文章:

  • WIN7下使用Outlook访问 Exange2010 无法对外发送邮件的问题
  • linux下终止用户会话二法
  • REST与SOA两种架构下WCF的异同比较(含源码)
  • jquery特殊符号含意
  • Unix/Linux常用的一些命令--转贴我注明
  • 辅助域控制器删除报错“目标服务器无法分配标识符”
  • .NET Project Open Day(2011.11.13)
  • H3C交换机以太网端口类型
  • 遇事处理方式
  • phpweb解析不当加上传漏洞
  • 读书笔记10:外观模式
  • How Many Times We'll Say Goodbye---歌词
  • myeclipse注册类
  • 爱创课堂每日一题第六十天- 创建ajax的过程
  • 海康流媒体客户端开发
  • 10个最佳ES6特性 ES7与ES8的特性
  • Brief introduction of how to 'Call, Apply and Bind'
  • create-react-app项目添加less配置
  • Django 博客开发教程 16 - 统计文章阅读量
  • Invalidate和postInvalidate的区别
  • Laravel5.4 Queues队列学习
  • markdown编辑器简评
  • MySQL用户中的%到底包不包括localhost?
  • node学习系列之简单文件上传
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • webgl (原生)基础入门指南【一】
  • Webpack 4x 之路 ( 四 )
  • 闭包--闭包作用之保存(一)
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • Java总结 - String - 这篇请使劲喷我
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • #pragma 指令
  • (2)MFC+openGL单文档框架glFrame
  • (20050108)又读《平凡的世界》
  • (23)Linux的软硬连接
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (多级缓存)缓存同步
  • (过滤器)Filter和(监听器)listener
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • .NET : 在VS2008中计算代码度量值
  • .net 流——流的类型体系简单介绍
  • /bin/bash^M: bad interpreter: No such file or directory
  • ::before和::after 常见的用法
  • [.NET 即时通信SignalR] 认识SignalR (一)
  • [2024] 十大免费电脑数据恢复软件——轻松恢复电脑上已删除文件
  • [C++打怪升级]--学习总目录
  • [Docker]四.Docker部署nodejs项目,部署Mysql,部署Redis,部署Mongodb
  • [iOS]Win8下iTunes无法连接iPhone版本的解决方法
  • [JavaEE]线程的状态与安全
  • [JavaEE系列] Thread类的基本用法
  • [Linux] 一文理解HTTPS协议:什么是HTTPS协议、HTTPS协议如何加密数据、什么是CA证书(数字证书)...
  • [Linux版本Debian系统]安装cuda 和对应的cudnn以cuda 12.0为例
  • [Lucas定理]【学习笔记】
  • [StartingPoint][Tier1]Pennyworth
  • [UnityEditor基础]脚本自动定位选择Hierarchy或Project下的对象