自定义带属性的tld标签

http://66247836.blog.163.com/blog/static/69145154200872891011694/

自定义带属性的tld标签  

2008-08-28 09:10:11|  分类: 默认分类 |字号 订阅

 

一:com. DateTimeTag.java

package com;

 

import java.text.SimpleDateFormat;

import java.util.Date;

 

import javax.servlet.jsp.JspTagException;

import javax.servlet.jsp.JspWriter;

import javax.servlet.jsp.tagext.TagSupport;

 

publicclass DateTimeTag extends TagSupport {

    privatestaticfinallongserialVersionUID = 1L;

    private String patten="yyyy-MM-dd hh:mm:ss";//默认的日期格式

    private Date date;

   

    publicvoidsetPatten(String patten) {

//只有set方法就够了,只有页面给这个类赋值

       this.patten = patten;

    }

   

    publicvoidsetDate(Date date) {

       this.date = date;

    }

   

    publicintdoEndTag()throws JspTagException{

       SimpleDateFormat sdf=new SimpleDateFormat(patten);

       JspWriter out=pageContext.getOut();

       if(date==null){

           date=new Date();

       }

       try{

           out.println(sdf.format(date));

       }catch(Exception e){

           thrownew JspTagException(e);

       }

       returnEVAL_PAGE;

    }  

}

 

util.tld

<tag>

       <description>calculate running date time</description>

        <name>dateTime</name>

       <tag-class>com.DateTimeTag</tag-class>

       <body-content>empty</body-content><!--标记里不能使用jsp代码  -->

       <attribute>

           <name>date</name>

           <required>false</required><!-- 不一定给值 -->

           <rtexprvalue>true</rtexprvalue><!-- 可以是jsp的表达式 -->

       </attribute>

      

       <attribute>

           <name>patten</name>

           <required>false</required><!-- 不一定给值 -->

           <rtexprvalue>false</rtexprvalue><!-- 不允许用jsp的表达式 -->

       </attribute>

</tag>

三.Datetimetag.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"

    pageEncoding="utf-8"%>

<%@taglib prefix="util" uri="http://qby/util"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>time-tag.jsp</title>

</head>

<body>

(1.1900+108=2008,5表示6月,输出“2008-06-23日”)

<util:dateTime  patten="yyyy-MM-dd"

date="<%=new java.util.Date(108,5,23)%>">

</util:dateTime>

(2. 输出2008年,08-26)

<util:dateTime  patten="yyyy年,MM-dd" >

</util:dateTime>

(3. 输出2008-06-23 12:00:00)

<util:dateTime   date="<%=new java.util.Date(108,5,23)%>">

</util:dateTime>

</body>

</html>

猜你喜欢

转载自goahead2010.iteye.com/blog/1964166