`

JSP自定义标签--没有正文的但带有属性的JSP自定义标签标签实现

    博客分类:
  • jsp
阅读更多
package cn.com.chenlly.tag;

import java.io.IOException;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.Tag;
import javax.servlet.jsp.tagext.TagSupport;

//无正文标签类继承的是TagSupport类 实现的接口是Tag。 如果有正文的标签类继承的是BodyTagSupport类 实现的接口是BodyTag  
public class DateTagNoBody extends TagSupport {
	private static final long serialVersionUID = 1L;
	
	private String pattern;

	@Override
	public int doStartTag() throws JspException {
		HttpServletRequest request;
		// 是TagSupport类中定义的一个属性,它是javax.servlet.jsp.PageContext的对象
		request = (HttpServletRequest) pageContext.getRequest();
		java.text.SimpleDateFormat formater = new java.text.SimpleDateFormat(
				pattern);
		String date = formater.format(new Date());
		JspWriter out = pageContext.getOut();
		try {
			
			out.println("<hr>");
			out.println("<table border='2'>");
			out.println("<tr>");
			out.println("<td>");
			out.print(date);
			out.println("</td>");
			out.println("</tr>");
			out.println("</table>");
			out.println("<hr>");
		} catch (IOException e) {
			e.printStackTrace();
		}
		// doStartTag() 方法返回 SKIP_BODY 。当然其原因是我们的简单日期标记没有正文。
		return Tag.SKIP_BODY;
	}

	// 必须实现setXX()方法
	public void setPattern(String pattern) {
		this.pattern = pattern;
	}
}




<?xml version="1.0" encoding="UTF-8"?>
<taglib>
	<tlibversion>1.0</tlibversion>
	<jspversion>1.2</jspversion>

	<tag>
		<name>displayDate</name>
		<tagclass>cn.com.chenlly.tag.DateTagNoBody</tagclass>
		<bodycontent>empty</bodycontent><!-- 定义属性 -->
		<attribute>
			<name>pattern</name><!-- 属性名字 -->
			<type>String</type><!-- 属性类型 -->
			<requried>false</requried><!-- 是否必须 -->
			<rtexprvale>false</rtexprvale><!-- 表示是否可以使用JSP表达式  -->
		</attribute>
	</tag>

</taglib>



<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="/WEB-INF/datetag.tld" prefix="c"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
	</head>
	<body>
		<c:displayDate pattern='yyyy-MM-dd'/>   
		 <br/>    
		 <c:displayDate pattern='MM/dd HH:mm:ss'/>  
	</body>
</html>

分享到:
评论

相关推荐

    JSP自定义标签-标签属性_动力节点Java学院整理

    例如前一篇博客使用简单标签来对标签体内容执行一定的次数,就无法在标签上规定要执行的次数,必须在标签处理器类中修改,很不方便,如果使用带属性的标签就能很好的解决这个问题。  要想使简单标签具有属性,通常...

    一个用于分页的自定义标签

    java web项目一个自定义的分页标签

    Struts2+jsp自定义分页组件以及源码

    自已写的一个jsp自定义分页器zoo-paging-1.0.jar,附带有源码以及例子,希望对大家有用!

    JSP2.0技术手册pdf(带示例源码).zip

    书名:JSP 2.0 技术手册(电子书) 格式:PDF 出版:电子工业出版社 作者:林上杰、林康司 本书图文并茂,以丰富的实例为引导,全面介绍了主流的 Java Web 开发技术—— JSP 2.0,重点介绍Java在展示层的两项重要技术...

    自定义alert 弹框 弹窗

    自定义alert 弹框 弹窗 公用的alert.jsp的页面 引用直接使用 还可根据实际需要做修改,修改系统自带的弹框样式,有alertError 和alertSuccess两种样式

    自定义标签学习

    详细讲解了自定义标签的用法附带有案例,有代码案例,自定义标签的类的接口的说明,还有tld文件元素的说明

    fckeditor的JSP详细配置(带有所有需要的包)

    这个是自己调试并整理过的fckeditor配置,并非网上照搬照抄的垃圾文档。包含有所有需要的包,配置... 1、要想实现上传必须用自定义标签方式引用。 2、SSH结合时上传功能失败,删除xalan.jar(这个包是读xml文件用的)

    jsp试卷带答案很全面

    3)当JSP页面执行自定义标签,遇到结束标签时将调用()方法执行处理。(选择一项) a) doStartTag() b) doEndTag() c) doInitBody() d) doAfterBody() 4) 在J2EE中,test.jsp文件中有如下一行代码...

    jsp编程中,servlet向jsp中传递带有泛型的数组

    servlet类向jsp传递带泛型数组。泛型为自定义的bean

    JSP-Servlets-SQL-ConnectionPool:使用 Java EE servelets 和 jsp(JSTL 和 EL)的电子邮件列表动态 Web 应用程序

    使用的技术和指南本网站使用以下技术来正常工作: JSP(带有 JSTL、EL、包含和自定义标签) JSP &lt;c&gt; 标签转义字符并防止 XSS(跨站点脚本) JDBC 和准备好的语句以防止 SQL 注入攻击小服务程序JavaBean (User.class)...

    JSP发送邮件实例

    基于JSP邮件发送的实例,本人亲测,163邮箱中互发成功,其他的没时间测试。有兴趣的同志们可以试一下、、、 &lt;br&gt;环境:XP + JDK +TOMCAT6 &lt;br&gt;需要用到两个JAR包:mail.jar 和 activation.jar &lt;br&gt;这两个...

    JSP企富商贸网开发

    自定义商品属性,自定义商品简介魔板,自由增加一级页面数量,自由更换页面样式, 自由设定管理员权限,自由设定页面局部类型商品,在线调查,在线留言,团体购物, 自由设定友情链接和页面的关联,自由设定信息和...

    ATGrid报表控件 wintable报表设计器

    支持HTTP协议,带有异步同步交互接口,可以和后台程序轻松交互; 支持XML: 通过XML和后台数据库进行绑定,设定打印属性、样式等; 内嵌支持脚本语言开发: 使开发更灵活方便; 普通报表,套打报表,...

    低清版 大型门户网站是这样炼成的.pdf

    11.4.1 展示层jsp 2+struts 2标签库实现 711 11.4.2 控制层struts 2实现 720 11.4.3 持久层hibernate 3实现 728 11.4.4 spring 2接管业务逻辑层 730 11.5 小结 733 第12章 站务必备—系统用户管理与流量统计 ...

    cms后台管理

    五 自定义标签及使用自己创建的表的实现过程 下面是我自己定义的标签mycontent_list 首先,在数据库里创建了一个jc_mycontent的表,其中有id,title,content三个字段 其次,创建了一个实体类 public class ...

    用C ++实现的 RTS 游戏的 路径查找算法(A*、JPS、Wall-tracing)

    带有网格图的 RTS 游戏的路径查找算法的 C++ 实现。 如何使用 此代码用于我的类似 RTS 的游戏中,带有自定义内部引擎。我照原样复制它,没有实现许多类,如 vec2、Array、MemoryManager 等。所以如果有人想使用它,...

    editplus 代码编辑器html c++ jsp css

    ③ “文件-新建-text”,就可以建立一个空的文本文件,保存时,这个文件自动带有扩展名".txt",也就避免了令人头疼的确认 ④ 模板设置文件名称为“template.ini”,如果和主程序同一路径,可以使用相对路径 罗嗦了...

    J2EE中文版指南 CHM格式 带全文检索

    带有属性的标签 196 带体的标签 197 在传递信息时选择属性还是体 197 定义脚本变量的标签 197 标签的相互协作 197 定义标签 198 标签处理器 198 标签库描述符 198 简单标签 200 标签属性 200 标签体 202 定义脚本...

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    24.1 JSP include指令/标签的不足 302 24.2 Tiles布局和定义 303 24.2.1 布局页面 303 24.2.2 Tiles定义 304 24.3 Struts Tiles插件 305 24.4 Struts Tiles示例 306 24.5 小结 309 第25章 JFreeChart插件 310 25.1 ...

Global site tag (gtag.js) - Google Analytics