<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    愚僧

    贏與輸的差別通常是--不放棄

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      23 Posts :: 0 Stories :: 2 Comments :: 0 Trackbacks


    步驟:
    1. 定義tld標簽描述文件
    2. 新建class繼承SimpleTagSupport或者BodyTagSupport
    3. taglib命令聲明
    4. 使用自定義標簽

    1. 定義tld標簽描述文件custom_tag.tld
    <?xml version="1.0" encoding="UTF-8"?>
    <taglib xmlns="http://java.sun.com/xml/ns/j2ee"
        xmlns:xsi
    ="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation
    ="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
        version
    ="2.0">
        <description>JSTL 1.1 core library</description>
        <display-name>JSTL core</display-name>
        <tlib-version>1.1</tlib-version>
        <short-name>ct</short-name>
        <!-- 與 taglib 的 uri 對應 -->
        <uri>http://www.customtag.com/custom_tag</uri>
        <!-- 定義一個標簽 -->
        <tag>
            <!-- 標簽的名稱 -->
            <name>date</name>
            <!-- 標簽類 -->
            <tag-class>com.customtag.tags.DateTag</tag-class>
            <!-- 標簽體 -->
            <body-content>empty</body-content>
            <attribute>
                <!-- 屬性名稱 -->
                <name>format</name>
                <!-- 是否必選 true:必選 -->
                <required>false</required>
                <!-- 是否允許使用表達式(EL), false:不能使用 -->
                <rtexprvalue>false</rtexprvalue>
            </attribute>
            <attribute>
                <name>value</name>
                <required>false</required>
                <rtexprvalue>true</rtexprvalue>
            </attribute>
        </tag>
    </taglib>
    注:
    可參考jstl-[version].jar中META-INF下的c.tld文件

    2. 新建DateTag繼承SimpleTagSupport或者BodyTagSupport
    package com.customtag.tags;

    import java.io.IOException;
    import java.text.SimpleDateFormat;
    import java.util.Date;

    import javax.servlet.jsp.JspException;
    import javax.servlet.jsp.JspWriter;
    import javax.servlet.jsp.PageContext;
    import javax.servlet.jsp.tagext.SimpleTagSupport;

    public class DateTag extends SimpleTagSupport {
        
        @Override
        public void doTag() throws JspException, IOException {
            SimpleDateFormat sdf = new SimpleDateFormat(format);
            PageContext pc = (PageContext) getJspContext();
            JspWriter out = pc.getOut();
            try{
                if(null != this.getValue()){
                    out.print(sdf.format(new Date(this.getValue())));
                }else{
                    out.print(sdf.format(new Date()));
                }
            }catch(IOException e){
                throw e;
            }catch(Exception e){
                out.print("");
            }
        }
        
        private String format="yyyy-MM-dd HH:mm:ss";
        
        private Long value = null;
        
        public String getFormat() {
            return format;
        }

        public void setFormat(String format) {
            this.format = format;
        }

        public Long getValue() {
            return value;
        }

        public void setValue(Long value) {
            this.value = value;
        }
        
    }

    3. taglib命令聲明
    <%@taglib prefix="ct" uri="http://www.customtag.com/custom_tag"%>

    4. 使用自定義標簽
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
        
    String path = request.getContextPath();
        
    String basePath = request.getScheme() + "://"
                
    + request.getServerName() + ":" + request.getServerPort()
                
    + path + "/";
    %>
    <%@taglib prefix="ct" uri="http://www.customtag.com/custom_tag"%>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
        <head>
            <base href="<%=basePath%>">

            <title>My JSP 'index.jsp' starting page</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>
            自定義標簽測試 : 
            <br>
            <ct:date/><br/>
            <ct:date format="MM/dd/yyyy"/><br/>
            <ct:date format="yyyy年MM月dd日 HH時mm分ss秒" value="<%=new Date().getTime() %>"/><br/>
        </body>
    </html>

    [運行結果]
    自定義標簽測試:
    2013-03-04 16:18:29
    03/04/2013
    2013年03月04日 16時18分29秒
    posted on 2013-03-04 16:35 ywm 閱讀(129) 評論(0)  編輯  收藏 所屬分類: servlet & jspstruts
    主站蜘蛛池模板: 日本亚洲国产一区二区三区| 99在线精品免费视频九九视| 亚洲国产精品一区二区三区久久 | 国产精品亚洲va在线观看| 91在线视频免费91| 亚洲人成在线免费观看| 免费99精品国产自在现线| 亚洲剧情在线观看| 午夜宅男在线永久免费观看网| 亚洲最大的视频网站| 日本妇人成熟免费中文字幕| 中国亚洲呦女专区| 国产精品免费视频一区| 一区二区三区精品高清视频免费在线播放 | 亚洲不卡1卡2卡三卡2021麻豆| 免费国产作爱视频网站| 亚洲 欧洲 日韩 综合在线| 日韩一级视频免费观看| 一本久久A久久免费精品不卡| 相泽亚洲一区中文字幕| 一区二区三区观看免费中文视频在线播放 | 日韩免费高清一级毛片在线| 久久精品亚洲日本波多野结衣| 国产免费资源高清小视频在线观看| 极品美女一级毛片免费| 精品亚洲综合在线第一区| 18级成人毛片免费观看| 亚洲精品日韩一区二区小说| 国产精品免费看香蕉| 国产一区二区免费| 伊人久久亚洲综合影院首页| 亚洲国产精品无码久久青草| 99久久人妻精品免费一区| 日韩亚洲不卡在线视频中文字幕在线观看| 日韩激情无码免费毛片| 丝瓜app免费下载网址进入ios| 亚洲精品国产成人中文| 免费成人午夜视频| 免费女人高潮流视频在线观看 | www永久免费视频| 亚洲自偷精品视频自拍|