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>
分享到:
相关推荐
例如前一篇博客使用简单标签来对标签体内容执行一定的次数,就无法在标签上规定要执行的次数,必须在标签处理器类中修改,很不方便,如果使用带属性的标签就能很好的解决这个问题。 要想使简单标签具有属性,通常...
java web项目一个自定义的分页标签
自已写的一个jsp自定义分页器zoo-paging-1.0.jar,附带有源码以及例子,希望对大家有用!
书名:JSP 2.0 技术手册(电子书) 格式:PDF 出版:电子工业出版社 作者:林上杰、林康司 本书图文并茂,以丰富的实例为引导,全面介绍了主流的 Java Web 开发技术—— JSP 2.0,重点介绍Java在展示层的两项重要技术...
自定义alert 弹框 弹窗 公用的alert.jsp的页面 引用直接使用 还可根据实际需要做修改,修改系统自带的弹框样式,有alertError 和alertSuccess两种样式
详细讲解了自定义标签的用法附带有案例,有代码案例,自定义标签的类的接口的说明,还有tld文件元素的说明
这个是自己调试并整理过的fckeditor配置,并非网上照搬照抄的垃圾文档。包含有所有需要的包,配置... 1、要想实现上传必须用自定义标签方式引用。 2、SSH结合时上传功能失败,删除xalan.jar(这个包是读xml文件用的)
3)当JSP页面执行自定义标签,遇到结束标签时将调用()方法执行处理。(选择一项) a) doStartTag() b) doEndTag() c) doInitBody() d) doAfterBody() 4) 在J2EE中,test.jsp文件中有如下一行代码...
servlet类向jsp传递带泛型数组。泛型为自定义的bean
使用的技术和指南本网站使用以下技术来正常工作: JSP(带有 JSTL、EL、包含和自定义标签) JSP <c> 标签转义字符并防止 XSS(跨站点脚本) JDBC 和准备好的语句以防止 SQL 注入攻击小服务程序JavaBean (User.class)...
基于JSP邮件发送的实例,本人亲测,163邮箱中互发成功,其他的没时间测试。有兴趣的同志们可以试一下、、、 <br>环境:XP + JDK +TOMCAT6 <br>需要用到两个JAR包:mail.jar 和 activation.jar <br>这两个...
自定义商品属性,自定义商品简介魔板,自由增加一级页面数量,自由更换页面样式, 自由设定管理员权限,自由设定页面局部类型商品,在线调查,在线留言,团体购物, 自由设定友情链接和页面的关联,自由设定信息和...
支持HTTP协议,带有异步同步交互接口,可以和后台程序轻松交互; 支持XML: 通过XML和后台数据库进行绑定,设定打印属性、样式等; 内嵌支持脚本语言开发: 使开发更灵活方便; 普通报表,套打报表,...
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章 站务必备—系统用户管理与流量统计 ...
五 自定义标签及使用自己创建的表的实现过程 下面是我自己定义的标签mycontent_list 首先,在数据库里创建了一个jc_mycontent的表,其中有id,title,content三个字段 其次,创建了一个实体类 public class ...
带有网格图的 RTS 游戏的路径查找算法的 C++ 实现。 如何使用 此代码用于我的类似 RTS 的游戏中,带有自定义内部引擎。我照原样复制它,没有实现许多类,如 vec2、Array、MemoryManager 等。所以如果有人想使用它,...
③ “文件-新建-text”,就可以建立一个空的文本文件,保存时,这个文件自动带有扩展名".txt",也就避免了令人头疼的确认 ④ 模板设置文件名称为“template.ini”,如果和主程序同一路径,可以使用相对路径 罗嗦了...
带有属性的标签 196 带体的标签 197 在传递信息时选择属性还是体 197 定义脚本变量的标签 197 标签的相互协作 197 定义标签 198 标签处理器 198 标签库描述符 198 简单标签 200 标签属性 200 标签体 202 定义脚本...
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 ...